diff --git a/examples/workflows/recent-workflow-doc-creator/README.md b/examples/workflows/recent-workflow-doc-creator/README.md new file mode 100644 index 0000000000..11e1e27bb2 --- /dev/null +++ b/examples/workflows/recent-workflow-doc-creator/README.md @@ -0,0 +1,44 @@ +# Recent Workflow Documentation Creator + +This workflow automatically creates GitHub pull requests to document recently deployed Vellum workflows. + +## Description + +A scheduled workflow that runs daily to: +1. Fetch all workflow deployments created in the last 24 hours +2. Process each deployment by fetching its workflow code +3. Use a GitHub agent to create pull requests with workflow examples + +## Key Features + +- **Scheduled Trigger**: Runs automatically at 10:00 AM Mountain Time daily +- **Map Node Pattern**: Processes multiple deployments concurrently (max concurrency of 4) +- **Tool-Calling Agent**: Uses Claude with GitHub integration tools to: + - Create new branches + - Commit workflow code and README files + - Open pull requests +- **Parallel Outputs**: Returns multiple outputs simultaneously (PR URLs, comments, deployments JSON) + +## Workflow Structure + +``` +Scheduled Trigger → FetchRecentDeployments → ProcessDeployments (Map) → { + DeploymentsOutput, + CommentsOutput, + PrUrlsOutput +} +``` + +## Notable Patterns + +1. **Subworkflow with Map Node**: The `ProcessDeployments` node is a Map Node that contains its own subworkflow for processing each deployment. + +2. **Vellum Integration Tools**: Uses `VellumIntegrationToolDefinition` with Composio's GitHub integration for branch/file/PR operations. + +3. **Custom Node Display**: Nodes use custom icons and colors for better visual organization in the UI. + +4. **API Client Access**: Accesses the Vellum client via `self._context.vellum_client` for fetching deployment data. + +## Use Case + +This workflow is perfect for teams who want to automatically document their workflows as they're deployed, maintaining an up-to-date examples repository without manual intervention. \ No newline at end of file diff --git a/examples/workflows/recent-workflow-doc-creator/workflow.py b/examples/workflows/recent-workflow-doc-creator/workflow.py new file mode 100644 index 0000000000..1c61973643 --- /dev/null +++ b/examples/workflows/recent-workflow-doc-creator/workflow.py @@ -0,0 +1,26 @@ +from vellum.workflows import BaseWorkflow + +from .nodes.comments_output import CommentsOutput +from .nodes.deployments_output import DeploymentsOutput +from .nodes.fetch_recent_deployments import FetchRecentDeployments +from .nodes.pr_urls_output import PrUrlsOutput +from .nodes.process_deployments import ProcessDeployments +from .triggers.scheduled import Scheduled + + +class Workflow(BaseWorkflow): + graph = ( + Scheduled + >> FetchRecentDeployments + >> ProcessDeployments + >> { + DeploymentsOutput, + CommentsOutput, + PrUrlsOutput, + } + ) + + class Outputs(BaseWorkflow.Outputs): + pr_results = PrUrlsOutput.Outputs.value + deployments_processed = CommentsOutput.Outputs.value + deployments_json = DeploymentsOutput.Outputs.value