Skip to content

Workflow Template — Getting Started ​

This guide is for contributors adding a community workflow template — a reusable WORKFLOW.md file that other Lensers can fork into their own workspace. Templates live at templates/community/ in the monorepo and are surfaced through the CLI and the workflow gallery in the web app.

The deeper guide to the SQL-seeded gallery (the legacy path) is at Workflow Template Contribution Guide. New templates should ship as WORKFLOW.md files under templates/community/ and use this getting-started guide.

The path ​

  1. Fork the repository and create a working branch.
  2. Write a WORKFLOW.md at templates/community/<your-slug>.workflow.md. Use the skeleton below.
  3. Validate locally with lf against the file.
  4. Submit via lf template submit <file> to register it for review, or open a PR directly with the file in templates/community/.
  5. Review — a maintainer (or the rotating mentor for the workflows area) reviews the PR within 7 business days.
  6. Merge — the file lands in templates/community/ and ships in the next release.

The canonical WORKFLOW.md schema ​

The schema is defined alongside the rest of the markdown object formats in Markdown Object Formats. The skeleton below is the minimum a community template needs:

markdown
---
kind: workflow
schema_version: 1
id: wf_<uuid>
slug: my-template-slug
name: My Template
description: One-sentence summary of what this template does.
owner:
  workspace_id: ws_community
visibility: public
version: 0.1.0
status: draft
workflow_type: scheduled
triggers:
  - type: schedule
steps:
  - id: plan
    type: agent_task
    agent_ref: agent_research_lead
tags:
  - community-template
---

# Purpose

What the workflow automates and the outcome a user can expect.

# Inputs

The input contract — names, defaults, validation rules.

# Steps

Ordered steps. For each: the lens or agent it binds to, expected upstream/downstream
data, retry and failure behavior.

# Outputs

Primary outputs, artifacts, and where they are written.

The four section headings — Purpose, Inputs, Steps, Outputs — are required. The validator rejects a WORKFLOW.md that is missing any of them.

Quality bar ​

A community template should:

  • Solve a recurring use case that more than one operator will plausibly want.
  • Have a stable id and slug. Once merged, neither is renamed.
  • Use lens references that exist in the public catalog or in examples/. Don't hard-code a private workspace's lens id.
  • Stay under ~6 steps. Larger workflows are harder to fork and adapt.
  • Have a single-sentence description that a user can read without opening the file.
  • Pin schema_version: 1.

Validation ​

Before submitting, validate the file:

bash
lf workflow run --dry-run templates/community/<your-slug>.workflow.md

The dry-run loads the file, validates the frontmatter and section structure, resolves lens references, and reports what would execute — without actually running anything.

Submission ​

Two paths are supported:

bash
# Path A — submit through the CLI (registers the template for review).
lf template submit templates/community/<your-slug>.workflow.md
bash
# Path B — open a PR with the file.
git add templates/community/<your-slug>.workflow.md
git commit -m "feat(templates): add <your-slug> community workflow template"
gh pr create --label good-first-workflow-template

Either path lands the template in the same review queue. The PR path is preferred when the template is the only change in the PR.

Review ​

A workflow template PR needs:

  • 1 maintainer approval (or the rotating workflows-area mentor).
  • The good-first-workflow-template label.
  • A passing dry-run on CI.

If you don't get a review within 7 business days, ping the rotation listed in Mentor Rotation.