Skip to main content

Phase 8 - Showcase workflow catalog

Eleven reusable workflows, built and published in the Coral Workflows designer, each one a real end-to-end pipeline rather than a shape sketch.

This phase exists because the first attempt produced eleven workflows that were technically valid and practically worthless. They contained only Variable, Classify, and Note nodes - three node types that never touch an external system, never call a model, and never block on a person. Nothing in that catalog could fail in an interesting way, which meant nothing in it taught anything about the designer. The stubs were discarded, not migrated, and the catalog was rebuilt from scratch against real first-party connectors.

FactValue
Tenantdarbotlabs / Cypherdyne
Environmentcf7ff9ef-f698-e22d-b864-28f0b7851614
Designer versionv23.4.2
Built2026-06-19
Workflows published11
Capturescaptures-2026-06-18/ (70 files)

Note that this environment is not the environment Raybot itself lives in. Raybot was built in Default-6b104499-c49f-45dc-b3a2-df95efd6eeb4. A flow id from this catalog and the Raybot agent id are cross-tenant references and will never resolve in the same session.

The shape every workflow follows​

Start (trigger: one typed Text input)
-> Connector first-party action, input bound to its primary parameter
-> Agent analyses connector output, emits one decision signal line
-> Human review assigned reviewer, Yes/No approval input

Three of the eleven are agent-first: they have no connector at all. That is a design decision, not an omission. Workflows 07, 10, and 11 take free-text input (incident prose, a documentation topic, a key scope) rather than a query string, so there is nothing to search against. Binding them to a connector would have meant inventing a query they do not have.

Why every agent ends with a decision signal​

Each Agent step's instructions terminate with a single uppercase token on its own line - ROTATION: yes/no, MERGE_BLOCK: yes/no, and so on.

This is the load-bearing part of the pattern. An agent that answers in prose forces every downstream consumer to parse prose, which means every consumer re-implements the same brittle extraction and disagrees with the others about edge cases. A fixed final line means a consumer greps for one token. The cost is one sentence of instruction; the benefit is that the workflow's output has a machine-readable contract.

It also makes the human gate meaningful. The reviewer sees the agent's reasoning and its recommendation, and approves or rejects the recommendation - rather than being asked to re-derive a decision from a paragraph.

The catalog​

11 of 11 workflows
#WorkflowInputConnectorDecision signalFlow id (8)
01GitHub Key and Token LifecyclerepoQueryGitHub: Search Github using QueryROTATION15a4f189
02GitHub PR Triage and Review RoutingprQueryGitHub: Search Github using QueryMERGE_BLOCK4362af9a
03GitHub Issue Auto-LabelerissueQueryGitHub: Search Github using QueryAPPLY_LABELSc9d8fa92
04Secret Exposure Scan and AlertsecretQueryGitHub: Search Github using QuerySECRET_EXPOSEDa10da6bc
05Repo Onboarding ProvisionerrepoQueryGitHub: Search Github using QueryPROVISIONe3dada34
06Release Notes GeneratorreleaseQueryGitHub: Search Github using QueryBREAKING_CHANGES3825f5a1
07Incident to Teams BridgeincidentTextnone (agent first)POST_TO_TEAMS50074e25
08Quarterly Access ReviewaccessScopeOffice 365 Users: Search for usersFLAG_FOR_REVOCATION0ea6baa7
09Dependency Health MonitordepQueryGitHub: Search Github using QueryDEPENDENCY_ACTION_REQUIREDd4cda0ba
10Docs Capture and Publish PipelinedocTopicnone (agent first)READY_TO_PUBLISHcee82ed1
11Cloud Key Rotation OrchestratorkeyScopenone (agent first)ROTATION_APPROVAL_REQUIREDd4a383ef

Only eight characters of each flow GUID were recorded. The full identifiers were never exported, so these prefixes are sufficient to correlate a capture folder with a flow in the designer and nothing more.

Designer behaviours that cost time​

Every item below was observed directly during the rebuild. They are documented as first-class findings because several of them are preconditions for automation, not merely annoyances: an automation that does not handle them fails with a timeout and no diagnostic.

/flows/new/canvas redirects to /workflows. The working entry point is the primary button:

await page.getByTestId('my-work-create').getByText('New Workflow').click();

The chevron beside that button offers only New classic workflow, which opens a different designer entirely. Selecting it produces a workflow that looks superficially similar and shares none of the node types documented here.

Agent instructions must be one continuous line​

A newline inside the instructions field commits the instruction early. A / character opens the slash command menu and truncates everything after it. Both failures are silent - the node saves, shows no error badge, and publishes, with instructions that stop partway through a sentence.

Type instructions as a single line with no inline dynamic tokens.

The Agent config panel blocks the next picker​

After saving an Agent step with Ctrl+S, the configuration panel stays open and intercepts the click that would open the next step picker. The picker never appears and the automation times out against a locator that is genuinely not there.

Close the panel explicitly - Close button, then a click on empty canvas - before adding the next step. In practice this means building the Agent step and the Human review step in separate automation calls rather than one continuous sequence.

Structured output re-breaks a working node​

An Agent node defaults to Text response. Selecting Structured output or Custom structured output adds required property fields, which immediately produces "Fix 1 error before publishing" and restores the Setup needed badge on a node that was previously clean.

Reselect Text response unless every required property will actually be filled. This is the single fastest way to turn a publishable workflow into an unpublishable one.

Escape commits the value it appears to cancel​

Pressing Escape while an Output dropdown is open closes the whole node panel and commits a value that was never chosen. There is no undo prompt and no visual difference from a deliberate selection.

Click the intended option. Never dismiss a dropdown in this designer with the keyboard.

Binding a connector input​

Use getByTestId('action-item-connector'), search the connector family, then select the exact action - Select action: Search Github using Query. Bind the trigger input with Insert dynamic content, using .first(), because there is one dynamic-content button per field and the accessible names are identical. Verify the resulting token chip reads <var>x before moving on.

The GitHub and Office 365 Users connections auto-bind to the signed-in account and show a green check. No separate connection step was required.

Human review noise is benign​

Configuring a Human review step spams advancedapprovals/listDynamicProperties 500 responses into the console. They do not block configuration, do not block publish, and the gate works afterwards. This is the second Coral surface in this audit where a persistent 500 is harmless - see Phase 6 for the one that is not.

Publish succeeds before Test enables​

The Test button enables several seconds after Publish reports success. Checking immediately produces a disabled button and the false conclusion that the publish did not take. Re-check after a short wait.

Captures​

Per-workflow step stills live in captures-2026-06-18/wfNN-real/ as 01-connector-bound, 02-full-flow-built, 03-published. Annotated full-flow frames with node-level callouts are at captures-2026-06-18/annotated-real/wfNN-real.png, generated by annotate_real_builds.py from the measured node-rectangle sidecar node-rects.json.

11 of 95 captures
WF01 GitHub Key and Token Lifecycle (input: repoQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gate
85. wf-realWF01 GitHub Key and Token Lifecycle (input: repoQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf01-real.png
WF02 GitHub PR Triage and Review Routing (input: prQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gate
86. wf-realWF02 GitHub PR Triage and Review Routing (input: prQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf02-real.png
WF03 GitHub Issue Auto-Labeler (input: issueQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gate
87. wf-realWF03 GitHub Issue Auto-Labeler (input: issueQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf03-real.png
WF04 Secret Exposure Scan and Alert (input: secretQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gate
88. wf-realWF04 Secret Exposure Scan and Alert (input: secretQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf04-real.png
WF05 Repo Onboarding Provisioner (input: repoQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gate
89. wf-realWF05 Repo Onboarding Provisioner (input: repoQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf05-real.png
WF06 Release Notes Generator (input: releaseQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gate
90. wf-realWF06 Release Notes Generator (input: releaseQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf06-real.png
WF07 Incident to Teams Bridge (input: incidentText) - no connector (agent first) -> Agent -> Human review approval gate
91. wf-realWF07 Incident to Teams Bridge (input: incidentText) - no connector (agent first) -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf07-real.png
WF08 Quarterly Access Review (input: accessScope) - Office 365 Users: Search for users -> Agent -> Human review approval gate
92. wf-realWF08 Quarterly Access Review (input: accessScope) - Office 365 Users: Search for users -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf08-real.png
WF09 Dependency Health Monitor (input: depQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gate
93. wf-realWF09 Dependency Health Monitor (input: depQuery) - GitHub: Search Github using Query -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf09-real.png
WF10 Docs Capture and Publish Pipeline (input: docTopic) - no connector (agent first) -> Agent -> Human review approval gate
94. wf-realWF10 Docs Capture and Publish Pipeline (input: docTopic) - no connector (agent first) -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf10-real.png
WF11 Cloud Key Rotation Orchestrator (input: keyScope) - no connector (agent first) -> Agent -> Human review approval gate
95. wf-realWF11 Cloud Key Rotation Orchestrator (input: keyScope) - no connector (agent first) -> Agent -> Human review approval gatecaptures-2026-06-18/annotated-real/wf11-real.png

What this phase does not prove​

The eleven workflows publish and their Test button enables. That is the full extent of what was verified.

No workflow in this catalog was executed end to end. No connector call was made against live data, no agent produced a decision signal in a real run, and no approval email was sent to the reviewer. The decision-signal contract described above is a contract the instructions ask for; it has not been observed holding across real model output.

The catalog is therefore evidence about the designer, not about the workflows' behaviour. It shows what can be assembled and published, which sequences of designer interactions work, and which fail silently. Treat every workflow here as an unrun template.