@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
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "workflow-for-workflows",
|
|
3
3
|
"name": "Workflow Authoring Workflow (Quality Gate v2)",
|
|
4
|
-
"version": "2.
|
|
5
|
-
"description": "
|
|
4
|
+
"version": "2.4.0",
|
|
5
|
+
"description": "Use this to author or modernize a WorkRail workflow. Guides through understanding the task, defining effectiveness targets, designing architecture and quality gates, drafting, validating, assigning tags, and handing off.",
|
|
6
6
|
"recommendedPreferences": {
|
|
7
7
|
"recommendedAutonomy": "guided",
|
|
8
8
|
"recommendedRiskPolicy": "conservative"
|
|
@@ -94,7 +94,15 @@
|
|
|
94
94
|
"title": "MR Review Workflow (Outcome Baseline Example)",
|
|
95
95
|
"source": "workflows/mr-review-workflow.agentic.v2.json",
|
|
96
96
|
"resolveFrom": "package",
|
|
97
|
-
"purpose": "Strong example of hypothesis, neutral fact packet, reviewer families, contradiction synthesis, and
|
|
97
|
+
"purpose": "Strong example of hypothesis, neutral fact packet, reviewer families, contradiction synthesis, final validation, and a three-dimension orthogonal assessment gate.",
|
|
98
|
+
"authoritative": false
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"id": "bug-investigation-workflow",
|
|
102
|
+
"title": "Bug Investigation Workflow (Assessment Gate Example)",
|
|
103
|
+
"source": "workflows/bug-investigation.agentic.v2.json",
|
|
104
|
+
"resolveFrom": "package",
|
|
105
|
+
"purpose": "Simpler example of a single-dimension assessment gate on a final validation step before handoff.",
|
|
98
106
|
"authoritative": false
|
|
99
107
|
},
|
|
100
108
|
{
|
|
@@ -114,7 +122,10 @@
|
|
|
114
122
|
"goal": "Understand what workflow you are authoring or modernizing, and classify the task before you design anything.",
|
|
115
123
|
"constraints": [
|
|
116
124
|
[
|
|
117
|
-
{
|
|
125
|
+
{
|
|
126
|
+
"kind": "ref",
|
|
127
|
+
"refId": "wr.refs.notes_first_durability"
|
|
128
|
+
}
|
|
118
129
|
],
|
|
119
130
|
"Explore first. Ask the user only what you genuinely cannot determine with tools and references.",
|
|
120
131
|
"Choose baselines as models, not templates. Copy structural patterns, not another workflow's domain voice."
|
|
@@ -194,14 +205,23 @@
|
|
|
194
205
|
"promptFragments": [
|
|
195
206
|
{
|
|
196
207
|
"id": "phase-2-simple-direct",
|
|
197
|
-
"when": {
|
|
208
|
+
"when": {
|
|
209
|
+
"var": "workflowComplexity",
|
|
210
|
+
"equals": "Simple"
|
|
211
|
+
},
|
|
198
212
|
"text": "For Simple workflows, keep the architecture linear and compact. Do not invent loops or ceremony unless the task truly needs them."
|
|
199
213
|
}
|
|
200
214
|
],
|
|
201
215
|
"requireConfirmation": {
|
|
202
216
|
"or": [
|
|
203
|
-
{
|
|
204
|
-
|
|
217
|
+
{
|
|
218
|
+
"var": "workflowComplexity",
|
|
219
|
+
"not_equals": "Simple"
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"var": "rigorMode",
|
|
223
|
+
"not_equals": "QUICK"
|
|
224
|
+
}
|
|
205
225
|
]
|
|
206
226
|
}
|
|
207
227
|
},
|
|
@@ -217,7 +237,7 @@
|
|
|
217
237
|
"procedure": [
|
|
218
238
|
"Decide whether the authored workflow needs a hypothesis step, neutral fact packet, reviewer or validator families, contradiction loop, final validation bundle, or explicit blind-spot handling.",
|
|
219
239
|
"Design the confidence model, blind-spot model, and state economy plan.",
|
|
220
|
-
"Decide the hard-gate dimensions that would make the authored workflow unsafe or unsatisfying if they fail.",
|
|
240
|
+
"Decide the hard-gate dimensions that would make the authored workflow unsafe or unsatisfying if they fail. If hard gates exist, implement them using the native `assessments` + `assessmentRefs` + `assessmentConsequences` schema fields rather than informal notes or `requireConfirmation` alone. Each dimension should capture a distinct orthogonal failure mode -- not restate the workflow's existing confidence band. See `mr-review-workflow.agentic.v2.json` and `bug-investigation.agentic.v2.json` as exemplars.",
|
|
221
241
|
"Write the redesign triggers that should force architectural revision rather than cosmetic refinement."
|
|
222
242
|
],
|
|
223
243
|
"outputRequired": {
|
|
@@ -230,8 +250,14 @@
|
|
|
230
250
|
},
|
|
231
251
|
"requireConfirmation": {
|
|
232
252
|
"or": [
|
|
233
|
-
{
|
|
234
|
-
|
|
253
|
+
{
|
|
254
|
+
"var": "rigorMode",
|
|
255
|
+
"equals": "THOROUGH"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"var": "workflowComplexity",
|
|
259
|
+
"equals": "Complex"
|
|
260
|
+
}
|
|
235
261
|
]
|
|
236
262
|
}
|
|
237
263
|
},
|
|
@@ -261,7 +287,10 @@
|
|
|
261
287
|
"promptFragments": [
|
|
262
288
|
{
|
|
263
289
|
"id": "phase-4-simple-fast",
|
|
264
|
-
"when": {
|
|
290
|
+
"when": {
|
|
291
|
+
"var": "workflowComplexity",
|
|
292
|
+
"equals": "Simple"
|
|
293
|
+
},
|
|
265
294
|
"text": "For Simple workflows, keep the file compact and linear. Do not create extra metaGuidance or loops unless the task truly needs them."
|
|
266
295
|
}
|
|
267
296
|
],
|
|
@@ -306,7 +335,10 @@
|
|
|
306
335
|
"promptFragments": [
|
|
307
336
|
{
|
|
308
337
|
"id": "phase-5a-thorough",
|
|
309
|
-
"when": {
|
|
338
|
+
"when": {
|
|
339
|
+
"var": "rigorMode",
|
|
340
|
+
"equals": "THOROUGH"
|
|
341
|
+
},
|
|
310
342
|
"text": "After structural validation passes, also check the workflow manually against required-level authoring-spec rules and fix any failures before moving on."
|
|
311
343
|
}
|
|
312
344
|
],
|
|
@@ -424,12 +456,18 @@
|
|
|
424
456
|
"promptFragments": [
|
|
425
457
|
{
|
|
426
458
|
"id": "phase-6b-quick",
|
|
427
|
-
"when": {
|
|
459
|
+
"when": {
|
|
460
|
+
"var": "rigorMode",
|
|
461
|
+
"equals": "QUICK"
|
|
462
|
+
},
|
|
428
463
|
"text": "For QUICK rigor, keep the simulation compact but still answer where the workflow would likely disappoint the user if it disappointed them at all."
|
|
429
464
|
},
|
|
430
465
|
{
|
|
431
466
|
"id": "phase-6b-modernize-check",
|
|
432
|
-
"when": {
|
|
467
|
+
"when": {
|
|
468
|
+
"var": "authoringMode",
|
|
469
|
+
"equals": "modernize_existing"
|
|
470
|
+
},
|
|
433
471
|
"text": "For modernize_existing: after tracing the workflow forward, check each item in valueInventory. For each enforcement mechanism and domain knowledge item: would the modernized workflow produce the same behavior? Any item where the answer is no or weaker is a loss — fix it directly or record the accepted tradeoff with justification."
|
|
434
472
|
}
|
|
435
473
|
],
|
|
@@ -463,17 +501,26 @@
|
|
|
463
501
|
"promptFragments": [
|
|
464
502
|
{
|
|
465
503
|
"id": "phase-6c-standard",
|
|
466
|
-
"when": {
|
|
504
|
+
"when": {
|
|
505
|
+
"var": "rigorMode",
|
|
506
|
+
"equals": "STANDARD"
|
|
507
|
+
},
|
|
467
508
|
"text": "For STANDARD rigor, you may keep the review self-executed unless uncertainty remains material. If you do delegate, prefer a small adversarial bundle."
|
|
468
509
|
},
|
|
469
510
|
{
|
|
470
511
|
"id": "phase-6c-thorough",
|
|
471
|
-
"when": {
|
|
512
|
+
"when": {
|
|
513
|
+
"var": "rigorMode",
|
|
514
|
+
"equals": "THOROUGH"
|
|
515
|
+
},
|
|
472
516
|
"text": "For THOROUGH rigor, assume the first review is not enough. Use adversarial reviewer lanes unless a hard limitation makes them impossible."
|
|
473
517
|
},
|
|
474
518
|
{
|
|
475
519
|
"id": "phase-6c-heritage-review",
|
|
476
|
-
"when": {
|
|
520
|
+
"when": {
|
|
521
|
+
"var": "authoringMode",
|
|
522
|
+
"equals": "modernize_existing"
|
|
523
|
+
},
|
|
477
524
|
"text": "For modernize_existing: add a heritage_reviewer to the adversarial bundle. Its job is to check each valueInventory item and find what was lost or weakened — it ignores format improvements. It must answer: which enforcement mechanisms are now prose-only? Which domain knowledge items are absent? Which behavioral rules were removed without equivalent replacement? Heritage_reviewer findings drive enforcementStrength and modernizationDiscipline scores."
|
|
478
525
|
}
|
|
479
526
|
],
|
|
@@ -533,6 +580,29 @@
|
|
|
533
580
|
}
|
|
534
581
|
]
|
|
535
582
|
},
|
|
583
|
+
{
|
|
584
|
+
"id": "phase-7a-assign-tags",
|
|
585
|
+
"title": "Phase 7a: Assign Tags",
|
|
586
|
+
"promptBlocks": {
|
|
587
|
+
"goal": "Register the workflow in spec/workflow-tags.json by assigning 1-3 tags from the closed tag set.",
|
|
588
|
+
"procedure": [
|
|
589
|
+
"Read spec/workflow-tags.json to see the available tags and their 'when' phrases.",
|
|
590
|
+
"Based on the workflow's purpose and description, select 1-3 tags from the closed set (coding, review_audit, investigation, design, documentation, tickets, learning, routines, authoring).",
|
|
591
|
+
"Add the workflow ID as a new entry under 'workflows' in spec/workflow-tags.json: { \"tags\": [\"<tag1>\"] }.",
|
|
592
|
+
"If the workflow is a test fixture or internal utility not meant for end-user discovery, add 'hidden': true.",
|
|
593
|
+
"Save the file. Do not modify any other field in the tags file."
|
|
594
|
+
],
|
|
595
|
+
"constraints": [
|
|
596
|
+
"Only use tags from the closed set. Do not invent new tags.",
|
|
597
|
+
"If the workflow already has an entry, update it rather than adding a duplicate.",
|
|
598
|
+
"Tags should reflect what the workflow does, not what it is named."
|
|
599
|
+
],
|
|
600
|
+
"outputRequired": {
|
|
601
|
+
"notesMarkdown": "List the assigned tags and a one-line justification for each."
|
|
602
|
+
}
|
|
603
|
+
},
|
|
604
|
+
"requireConfirmation": false
|
|
605
|
+
},
|
|
536
606
|
{
|
|
537
607
|
"id": "phase-7-final-trust-handoff",
|
|
538
608
|
"title": "Phase 7: Final Trust Handoff",
|
|
@@ -542,6 +612,7 @@
|
|
|
542
612
|
"Keep it concise. The workflow file is the deliverable, not the summary."
|
|
543
613
|
],
|
|
544
614
|
"procedure": [
|
|
615
|
+
"Stamp the workflow file: read the current `version` from `spec/authoring-spec.json` and write `validatedAgainstSpecVersion: <N>` as a top-level field in the workflow JSON. Commit the change — the stamp has no effect if only saved locally.",
|
|
545
616
|
"State the workflow file path and name, whether it was created or modernized, and what it does in one sentence.",
|
|
546
617
|
"Summarize the step structure, loops, confirmations, and delegation profile.",
|
|
547
618
|
"Report validation status, authoring-integrity status, and outcome-effectiveness status.",
|
|
@@ -559,5 +630,6 @@
|
|
|
559
630
|
"notesOptional": true,
|
|
560
631
|
"requireConfirmation": false
|
|
561
632
|
}
|
|
562
|
-
]
|
|
633
|
+
],
|
|
634
|
+
"validatedAgainstSpecVersion": 3
|
|
563
635
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "wr.discovery",
|
|
3
|
-
"name": "Discovery Workflow (Bundled
|
|
3
|
+
"name": "Discovery Workflow (Bundled \u2022 Exploration + Design Synthesis)",
|
|
4
4
|
"version": "3.1.0",
|
|
5
|
-
"description": "Use this
|
|
5
|
+
"description": "Use this to explore and think through a problem end-to-end. Moves between landscape exploration, problem framing, candidate generation, adversarial challenge, and uncertainty resolution.",
|
|
6
6
|
"recommendedPreferences": {
|
|
7
7
|
"recommendedAutonomy": "guided",
|
|
8
8
|
"recommendedRiskPolicy": "conservative"
|
|
@@ -53,7 +53,10 @@
|
|
|
53
53
|
"goal": "Figure out what I actually need help with, then recommend the best path through this workflow.",
|
|
54
54
|
"constraints": [
|
|
55
55
|
[
|
|
56
|
-
{
|
|
56
|
+
{
|
|
57
|
+
"kind": "ref",
|
|
58
|
+
"refId": "wr.refs.notes_first_durability"
|
|
59
|
+
}
|
|
57
60
|
],
|
|
58
61
|
"Use tools to answer your own questions whenever possible.",
|
|
59
62
|
"Recommend a path with rationale instead of making me pick cold.",
|
|
@@ -63,7 +66,8 @@
|
|
|
63
66
|
"Capture: `problemStatement`, `desiredOutcome`, `coreConstraints`, `antiGoals`, `primaryUncertainty`, `knownApproaches`, `importantStakeholders`, `rigorMode`, `automationLevel`, `pathRecommendation`, `pathRationale`, `designDocPath`.",
|
|
64
67
|
"Choose `landscape_first` when my dominant need is understanding the current landscape or comparing options. Choose `full_spectrum` when both landscape grounding and reframing are needed. Choose `design_first` when the dominant risk is solving the wrong problem or shaping the wrong concept.",
|
|
65
68
|
"Create or update `designDocPath` with sections for Context / Ask, Path Recommendation, Constraints / Anti-goals, Landscape Packet, Problem Frame Packet, Candidate Directions, Challenge Notes, Resolution Notes, Decision Log, and Final Summary.",
|
|
66
|
-
"Set these keys in the next `continue_workflow` call's `context` object: `problemStatement`, `desiredOutcome`, `coreConstraints`, `antiGoals`, `primaryUncertainty`, `knownApproaches`, `importantStakeholders`, `rigorMode`, `automationLevel`, `pathRecommendation`, `pathRationale`, `designDocPath`."
|
|
69
|
+
"Set these keys in the next `continue_workflow` call's `context` object: `problemStatement`, `desiredOutcome`, `coreConstraints`, `antiGoals`, `primaryUncertainty`, `knownApproaches`, `importantStakeholders`, `rigorMode`, `automationLevel`, `pathRecommendation`, `pathRationale`, `designDocPath`.",
|
|
70
|
+
"Also set `goal` in the context object: one sentence describing what you are trying to accomplish. This populates the session title in the Workspace console immediately."
|
|
67
71
|
],
|
|
68
72
|
"verify": [
|
|
69
73
|
"The chosen path is justified against the other two, not just named.",
|
|
@@ -72,8 +76,14 @@
|
|
|
72
76
|
},
|
|
73
77
|
"requireConfirmation": {
|
|
74
78
|
"or": [
|
|
75
|
-
{
|
|
76
|
-
|
|
79
|
+
{
|
|
80
|
+
"var": "pathRecommendation",
|
|
81
|
+
"equals": "full_spectrum"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"var": "rigorMode",
|
|
85
|
+
"equals": "THOROUGH"
|
|
86
|
+
}
|
|
77
87
|
]
|
|
78
88
|
}
|
|
79
89
|
},
|
|
@@ -84,7 +94,10 @@
|
|
|
84
94
|
"goal": "Figure out what capabilities are actually available and set up the human artifact strategy I need.",
|
|
85
95
|
"constraints": [
|
|
86
96
|
[
|
|
87
|
-
{
|
|
97
|
+
{
|
|
98
|
+
"kind": "ref",
|
|
99
|
+
"refId": "wr.refs.notes_first_durability"
|
|
100
|
+
}
|
|
88
101
|
],
|
|
89
102
|
"Probe capability availability through real work or explicit checks, then record the result structurally.",
|
|
90
103
|
"If web browsing or delegation is unavailable, keep going with the best fallback and record the gap."
|
|
@@ -112,7 +125,10 @@
|
|
|
112
125
|
"goal": "Build the landscape understanding needed for a landscape-first pass.",
|
|
113
126
|
"constraints": [
|
|
114
127
|
[
|
|
115
|
-
{
|
|
128
|
+
{
|
|
129
|
+
"kind": "ref",
|
|
130
|
+
"refId": "wr.refs.parallelize_cognition_serialize_synthesis"
|
|
131
|
+
}
|
|
116
132
|
],
|
|
117
133
|
"If web browsing is available, use it for current-state grounding; otherwise fall back explicitly and mark the evidence gap.",
|
|
118
134
|
"Surface the main existing approaches, hard constraints, notable contradictions, and strongest evidence gaps before moving on."
|
|
@@ -144,7 +160,10 @@
|
|
|
144
160
|
"goal": "Build strong but bounded landscape understanding for a full-spectrum pass.",
|
|
145
161
|
"constraints": [
|
|
146
162
|
[
|
|
147
|
-
{
|
|
163
|
+
{
|
|
164
|
+
"kind": "ref",
|
|
165
|
+
"refId": "wr.refs.parallelize_cognition_serialize_synthesis"
|
|
166
|
+
}
|
|
148
167
|
],
|
|
149
168
|
"If web browsing is available, use it for current-state grounding; otherwise fall back explicitly and mark the evidence gap.",
|
|
150
169
|
"Go broad enough to avoid reinventing the obvious, but do not let research sprawl crowd out framing and synthesis."
|
|
@@ -176,7 +195,10 @@
|
|
|
176
195
|
"goal": "Do the lightest landscape pass that still keeps the design-first work grounded.",
|
|
177
196
|
"constraints": [
|
|
178
197
|
[
|
|
179
|
-
{
|
|
198
|
+
{
|
|
199
|
+
"kind": "ref",
|
|
200
|
+
"refId": "wr.refs.parallelize_cognition_serialize_synthesis"
|
|
201
|
+
}
|
|
180
202
|
],
|
|
181
203
|
"Do not skip the basics: surface the main existing approaches, hard constraints, and obvious contradictions.",
|
|
182
204
|
"Keep this lean unless the evidence clearly says the landscape is more important than the framing."
|
|
@@ -208,7 +230,10 @@
|
|
|
208
230
|
"goal": "Keep the framing lean, but do not skip the people and tensions that could change the recommendation.",
|
|
209
231
|
"constraints": [
|
|
210
232
|
[
|
|
211
|
-
{
|
|
233
|
+
{
|
|
234
|
+
"kind": "ref",
|
|
235
|
+
"refId": "wr.refs.parallelize_cognition_serialize_synthesis"
|
|
236
|
+
}
|
|
212
237
|
],
|
|
213
238
|
"Do not silently promote assumptions into facts.",
|
|
214
239
|
"Even in a landscape-first pass, capture the core tension, primary stakeholders, success criteria, and what could make the framing wrong."
|
|
@@ -240,7 +265,10 @@
|
|
|
240
265
|
"goal": "Build a strong problem frame that can stand alongside the landscape work.",
|
|
241
266
|
"constraints": [
|
|
242
267
|
[
|
|
243
|
-
{
|
|
268
|
+
{
|
|
269
|
+
"kind": "ref",
|
|
270
|
+
"refId": "wr.refs.parallelize_cognition_serialize_synthesis"
|
|
271
|
+
}
|
|
244
272
|
],
|
|
245
273
|
"Do not silently promote assumptions into facts.",
|
|
246
274
|
"Go strong on framing here without bloating the work into ceremony."
|
|
@@ -272,7 +300,10 @@
|
|
|
272
300
|
"goal": "Go deep on people, tensions, and framing risk before you move into solution shaping.",
|
|
273
301
|
"constraints": [
|
|
274
302
|
[
|
|
275
|
-
{
|
|
303
|
+
{
|
|
304
|
+
"kind": "ref",
|
|
305
|
+
"refId": "wr.refs.parallelize_cognition_serialize_synthesis"
|
|
306
|
+
}
|
|
276
307
|
],
|
|
277
308
|
"Do not silently promote assumptions into facts.",
|
|
278
309
|
"This is a deep framing pass. Surface the strongest tensions, success criteria, and what could make the framing wrong."
|
|
@@ -321,8 +352,14 @@
|
|
|
321
352
|
},
|
|
322
353
|
"requireConfirmation": {
|
|
323
354
|
"or": [
|
|
324
|
-
{
|
|
325
|
-
|
|
355
|
+
{
|
|
356
|
+
"var": "pathChangedAfterContext",
|
|
357
|
+
"equals": true
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"var": "rigorMode",
|
|
361
|
+
"equals": "THOROUGH"
|
|
362
|
+
}
|
|
326
363
|
]
|
|
327
364
|
}
|
|
328
365
|
},
|
|
@@ -333,7 +370,10 @@
|
|
|
333
370
|
"goal": "Combine the landscape packet and problem frame into a coherent decision shape before you generate candidates.",
|
|
334
371
|
"constraints": [
|
|
335
372
|
[
|
|
336
|
-
{
|
|
373
|
+
{
|
|
374
|
+
"kind": "ref",
|
|
375
|
+
"refId": "wr.refs.synthesis_under_disagreement"
|
|
376
|
+
}
|
|
337
377
|
],
|
|
338
378
|
"If the landscape and framing stories disagree, treat that disagreement as first-class work.",
|
|
339
379
|
"State what kind of uncertainty remains: recommendation uncertainty, research uncertainty, or prototype-learning uncertainty."
|
|
@@ -361,9 +401,18 @@
|
|
|
361
401
|
"id": "p2-challenge-deleg",
|
|
362
402
|
"when": {
|
|
363
403
|
"and": [
|
|
364
|
-
{
|
|
365
|
-
|
|
366
|
-
|
|
404
|
+
{
|
|
405
|
+
"var": "needsChallenge",
|
|
406
|
+
"equals": true
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"var": "delegationAvailable",
|
|
410
|
+
"equals": true
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"var": "rigorMode",
|
|
414
|
+
"not_equals": "QUICK"
|
|
415
|
+
}
|
|
367
416
|
]
|
|
368
417
|
},
|
|
369
418
|
"text": "Also decide whether a delegated challenge is worth the extra step. If yes, spawn ONE WorkRail Executor running `routine-hypothesis-challenge` against the current framing, then synthesize it yourself. If not, record why your own challenge is enough."
|
|
@@ -479,7 +528,10 @@
|
|
|
479
528
|
"goal": "Read `design-candidates.md`, challenge the leading option, and make the final selection for me.",
|
|
480
529
|
"constraints": [
|
|
481
530
|
[
|
|
482
|
-
{
|
|
531
|
+
{
|
|
532
|
+
"kind": "ref",
|
|
533
|
+
"refId": "wr.refs.adversarial_challenge_rules"
|
|
534
|
+
}
|
|
483
535
|
],
|
|
484
536
|
"You own the selection. Candidate generation output is evidence, not the final decision.",
|
|
485
537
|
"If the leading option no longer looks best after challenge, switch deliberately rather than defending sunk cost."
|
|
@@ -522,8 +574,14 @@
|
|
|
522
574
|
],
|
|
523
575
|
"requireConfirmation": {
|
|
524
576
|
"or": [
|
|
525
|
-
{
|
|
526
|
-
|
|
577
|
+
{
|
|
578
|
+
"var": "automationLevel",
|
|
579
|
+
"equals": "Low"
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
"var": "pathRecommendation",
|
|
583
|
+
"equals": "full_spectrum"
|
|
584
|
+
}
|
|
527
585
|
]
|
|
528
586
|
}
|
|
529
587
|
},
|
|
@@ -533,9 +591,18 @@
|
|
|
533
591
|
"title": "Phase 4: Direction Review Loop",
|
|
534
592
|
"runCondition": {
|
|
535
593
|
"or": [
|
|
536
|
-
{
|
|
537
|
-
|
|
538
|
-
|
|
594
|
+
{
|
|
595
|
+
"var": "rigorMode",
|
|
596
|
+
"not_equals": "QUICK"
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"var": "pathRecommendation",
|
|
600
|
+
"equals": "full_spectrum"
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"var": "pathRecommendation",
|
|
604
|
+
"equals": "design_first"
|
|
605
|
+
}
|
|
539
606
|
]
|
|
540
607
|
},
|
|
541
608
|
"loop": {
|
|
@@ -615,7 +682,10 @@
|
|
|
615
682
|
"goal": "Decide whether you should end with a recommendation for me, a targeted research follow-up, or a prototype/test artifact.",
|
|
616
683
|
"constraints": [
|
|
617
684
|
[
|
|
618
|
-
{
|
|
685
|
+
{
|
|
686
|
+
"kind": "ref",
|
|
687
|
+
"refId": "wr.refs.adversarial_challenge_rules"
|
|
688
|
+
}
|
|
619
689
|
],
|
|
620
690
|
"Do the least work that can still resolve the most important remaining uncertainty. If a lighter pass would leave the main risk unresolved, do not choose it.",
|
|
621
691
|
"A prototype exists to falsify a direction, not to decorate it."
|
|
@@ -633,8 +703,14 @@
|
|
|
633
703
|
},
|
|
634
704
|
"requireConfirmation": {
|
|
635
705
|
"or": [
|
|
636
|
-
{
|
|
637
|
-
|
|
706
|
+
{
|
|
707
|
+
"var": "resolutionMode",
|
|
708
|
+
"equals": "prototype_test"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"var": "remainingGapCount",
|
|
712
|
+
"gt": 0
|
|
713
|
+
}
|
|
638
714
|
]
|
|
639
715
|
}
|
|
640
716
|
},
|
|
@@ -809,7 +885,10 @@
|
|
|
809
885
|
"goal": "Validate that you are ending with the right level of confidence and the right caveats for me.",
|
|
810
886
|
"constraints": [
|
|
811
887
|
[
|
|
812
|
-
{
|
|
888
|
+
{
|
|
889
|
+
"kind": "ref",
|
|
890
|
+
"refId": "wr.refs.synthesis_under_disagreement"
|
|
891
|
+
}
|
|
813
892
|
],
|
|
814
893
|
"Do not claim certainty you do not have.",
|
|
815
894
|
"If important contradictions or gaps remain, downgrade confidence and say so explicitly."
|
|
@@ -859,7 +938,10 @@
|
|
|
859
938
|
"goal": "Finalize the design doc and deliver a clear recommendation, artifact, or next-step direction to me.",
|
|
860
939
|
"constraints": [
|
|
861
940
|
[
|
|
862
|
-
{
|
|
941
|
+
{
|
|
942
|
+
"kind": "ref",
|
|
943
|
+
"refId": "wr.refs.notes_first_durability"
|
|
944
|
+
}
|
|
863
945
|
],
|
|
864
946
|
"Keep the final chat output concise.",
|
|
865
947
|
"Do not drift into production implementation planning beyond high-level next actions."
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-orange-400:oklch(75% .183 55.934);--color-orange-500:oklch(70.5% .213 47.604);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--tracking-wider:.05em;--leading-snug:1.375;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.right-0{right:calc(var(--spacing) * 0)}.right-2{right:calc(var(--spacing) * 2)}.z-50{z-index:50}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mr-\[420px\]{margin-right:420px}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-\[500px\]{height:500px}.max-h-48{max-height:calc(var(--spacing) * 48)}.min-h-screen{min-height:100vh}.w-\[420px\]{width:420px}.w-full{width:100%}.max-w-\[200px\]{max-width:200px}.max-w-\[240px\]{max-width:240px}.max-w-\[360px\]{max-width:360px}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[200px\]{min-width:200px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-1{row-gap:calc(var(--spacing) * 1)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--status-in-progress\)\],.border-\[var\(--status-in-progress\)\]\/30{border-color:var(--status-in-progress)}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--status-in-progress\)\]\/30{border-color:color-mix(in oklab,var(--status-in-progress) 30%,transparent)}}.border-blue-500\/20{border-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.border-blue-500\/20{border-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.border-green-500\/20{border-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.border-green-500\/20{border-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.border-orange-500\/20{border-color:#fe6e0033}@supports (color:color-mix(in lab,red,red)){.border-orange-500\/20{border-color:color-mix(in oklab,var(--color-orange-500) 20%,transparent)}}.border-yellow-500\/40{border-color:#edb20066}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/40{border-color:color-mix(in oklab,var(--color-yellow-500) 40%,transparent)}}.bg-\[var\(--accent\)\]{background-color:var(--accent)}.bg-\[var\(--bg-card\)\]{background-color:var(--bg-card)}.bg-\[var\(--bg-primary\)\]{background-color:var(--bg-primary)}.bg-\[var\(--bg-secondary\)\]{background-color:var(--bg-secondary)}.bg-\[var\(--bg-tertiary\)\]{background-color:var(--bg-tertiary)}.bg-\[var\(--status-in-progress\)\]\/20{background-color:var(--status-in-progress)}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--status-in-progress\)\]\/20{background-color:color-mix(in oklab,var(--status-in-progress) 20%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab,red,red)){.bg-orange-500\/10{background-color:color-mix(in oklab,var(--color-orange-500) 10%,transparent)}}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-words{overflow-wrap:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[var\(--error\)\]{color:var(--error)}.text-\[var\(--status-in-progress\)\]{color:var(--status-in-progress)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--text-primary\)\]{color:var(--text-primary)}.text-\[var\(--text-secondary\)\]{color:var(--text-secondary)}.text-\[var\(--warning\)\]{color:var(--warning)}.text-blue-400{color:var(--color-blue-400)}.text-green-400{color:var(--color-green-400)}.text-orange-400{color:var(--color-orange-400)}.text-red-400{color:var(--color-red-400)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.capitalize{text-transform:capitalize}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.placeholder-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-\[margin\]{transition-property:margin;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}@media(hover:hover){.group-hover\:text-\[var\(--accent\)\]:is(:where(.group):hover *){color:var(--accent)}.group-hover\:text-\[var\(--text-primary\)\]:is(:where(.group):hover *){color:var(--text-primary)}.group-hover\:text-\[var\(--text-secondary\)\]:is(:where(.group):hover *){color:var(--text-secondary)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:border-\[var\(--accent\)\]:hover{border-color:var(--accent)}.hover\:bg-\[var\(--bg-card\)\]:hover{background-color:var(--bg-card)}.hover\:text-\[var\(--text-primary\)\]:hover{color:var(--text-primary)}.hover\:text-\[var\(--text-secondary\)\]:hover{color:var(--text-secondary)}}.focus\:border-\[var\(--accent\)\]:focus{border-color:var(--accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}@media(min-width:40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}:root{--bg-primary:#0a0a0a;--bg-secondary:#141414;--bg-card:#1a1a1a;--border:#2a2a2a;--text-primary:#fafafa;--text-secondary:#a0a0a0;--text-muted:#666;--accent:#3b82f6;--accent-hover:#2563eb;--success:#22c55e;--warning:#eab308;--error:#ef4444;--blocked:#f97316}body{background:var(--bg-primary);color:var(--text-primary);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}.markdown-view{color:var(--text-secondary);word-break:break-word;font-size:.8125rem;line-height:1.6}.markdown-view h1,.markdown-view h2,.markdown-view h3,.markdown-view h4,.markdown-view h5,.markdown-view h6{color:var(--text-primary);margin:1em 0 .4em;font-weight:600;line-height:1.3}.markdown-view h1{font-size:1.1em}.markdown-view h2{font-size:1em}.markdown-view h3{font-size:.95em}.markdown-view h4,.markdown-view h5,.markdown-view h6{font-size:.9em}.markdown-view>:first-child{margin-top:0}.markdown-view p{margin:.5em 0}.markdown-view strong{color:var(--text-primary);font-weight:600}.markdown-view em{font-style:italic}.markdown-view a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.markdown-view ul{margin:.4em 0;padding-left:1.4em;list-style-type:disc}.markdown-view ol{margin:.4em 0;padding-left:1.4em;list-style-type:decimal}.markdown-view li{color:var(--text-secondary);margin:.15em 0}.markdown-view li::marker{color:var(--text-muted)}.markdown-view li>ul,.markdown-view li>ol{margin:.1em 0}.markdown-view li>ul{list-style-type:circle}.markdown-view code{background:var(--bg-primary);color:var(--text-primary);border-radius:3px;padding:.15em .35em;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:.88em}.markdown-view pre{background:var(--bg-primary);border-radius:6px;margin:.5em 0;padding:.75em;overflow-x:auto}.markdown-view pre code{background:0 0;padding:0;font-size:.85em;line-height:1.5}.markdown-view blockquote{border-left:3px solid var(--border);color:var(--text-muted);margin:.5em 0;padding:.25em .75em}.markdown-view hr{border:none;border-top:1px solid var(--border);margin:.75em 0}.markdown-view table{border-collapse:collapse;width:100%;margin:.5em 0;font-size:.9em}.markdown-view th,.markdown-view td{border:1px solid var(--border);text-align:left;padding:.35em .6em}.markdown-view th{background:var(--bg-primary);color:var(--text-primary);font-weight:600}.markdown-view img{border-radius:4px;max-width:100%}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}
|