# EkLine scheduled documentation agents

import { Steps, Tabs, TabItem } from '@astrojs/starlight/components';

Documentation drifts out of date the moment code ships. New features go undocumented, tutorials fall behind, and stale README files mislead users. Catching these problems manually is tedious and easy to forget.

Scheduled agents handle this for you. Each agent runs a prompt on a recurring cadence — hourly, daily, weekly, or monthly — and delivers the results as a pull request, a Slack message, or both. You set it up once, and EkLine keeps your docs accurate without ongoing effort.

<div style={{padding:'56.25% 0 0 0', position:'relative'}}>
  <iframe
    src="https://www.youtube.com/embed/56ygnpePseA?si=NoPSXqX8YkOfwAPf"
    frameBorder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
    referrerPolicy="strict-origin-when-cross-origin"
    allowFullScreen
    style={{position:'absolute', top:0, left:0, width:'100%', height:'100%'}}
    title="Scheduled Agents Demo"
  />
</div>

## What you can automate

EkLine provides pre-built templates that cover the most common documentation maintenance tasks. Each template is a proven prompt that the agent runs on every scheduled execution. You can also write your own prompt from scratch.

### Quality and accuracy audits

These templates catch problems before your users do.

| Template | What it does |
|----------|--------------|
| **Docs Drift Review** | Audits the last 30 days of GitHub activity for customer-facing changes that lack documentation, then fixes the highest-priority gap. |
| **Code Sample Review** | Verifies that code samples in your docs are accurate and runnable against the APIs and SDKs they demonstrate, then opens a PR fixing accuracy issues. |
| **Doc UI Accuracy Review** | Checks that your docs match the current frontend UI — labels, navigation paths, element placement — and opens a PR fixing UI drift. |
| **Image Alt Audit** | Scans documentation images for missing or low-quality alt text and fixes up to 20 images per run for accessibility compliance. |
| **README Review** | Audits your `README.md` against the current codebase and fixes inaccurate installation steps, dependencies, configuration, examples, or API references. |

### Content discovery and growth

These templates find gaps and create new content.

| Template | What it does |
|----------|--------------|
| **Tutorial Gap Review** | Analyzes your product, audience, and competitor docs to identify the most important missing tutorial or how-to guide, then writes it. |
| **Persona IA Review** | Reviews your docs from representative user personas and fixes the highest-ranked information architecture issue on their journey. |
| **Docs SEO Review** | Audits page titles, descriptions, headings, and internal links against your company marketing keywords, then fixes the highest-impact issue. |
| **FAQ Structured Data** | Adds or fixes FAQPage JSON-LD on FAQ documentation pages so they qualify for search engine rich results, capped at five file changes per run. |

### Reporting and communication

These templates keep your team informed without manual effort.

| Template | What it does |
|----------|--------------|
| **Release Notes Generator** | Generates structured release notes from completed tickets and GitHub activity since the last release-notes update. |
| **Release Marketing Brief** | Drafts a Slack-ready brief of significant user-facing features that shipped in the last seven days, as raw material for marketing and CS teams. |
| **EkLine Work Report** | Generates a stakeholder-facing report of EkLine docs activity across all repos for the last seven days — what shipped, what is waiting, and what is open. |
| **Pylon Support Review** | Clusters recent Pylon support tickets by theme into a prioritized report of documentation gaps, delivered wherever you direct or inline in Slack. |

:::tip
Most templates deliver results as both a pull request and a Slack message. The **Release Marketing Brief**, **EkLine Work Report**, and **Pylon Support Review** are Slack-only by default because they produce summaries rather than file changes.
:::

## How it works

Every scheduled agent follows the same lifecycle:

1. **You configure it** — Pick a template or write a custom prompt, set a schedule, and choose how to receive results.
2. **EkLine runs it** — At each scheduled time, EkLine creates a Docs Agent session and executes your prompt against the connected repository.
3. **You get the results** — Depending on your notification settings, the agent raises a pull request with its changes, posts a summary to Slack, or both.
4. **You review** — Open the pull request to review and merge, or click a run in the history to view the full agent session.

## Before you begin

You need:

- An EkLine account with Docs Agent enabled.
- At least one repository connected to EkLine.

## Create your first agent

<Steps>
1. Click **Scheduled Agents** in the left navigation, then click **New Agent**.

2. **Pick a template.** The template picker defaults to the first available template and populates the name and prompt for you. Search by name or description to find a template that fits your goal, or select **Custom agent** at the bottom to write your own prompt.

3. **Review the name.** The agent name appears in run logs and Slack messages. When you select a template, EkLine auto-fills the name — edit it to match your team's naming convention if needed.

4. **Review and customize the prompt.** The prompt defines what the agent does on each run. Templates give a proven starting point that you can edit. If a template includes a highlighted `<input_needed>` placeholder, replace it with your value before saving.

5. **Set the schedule.** Select a frequency — hourly, daily, weekly, or monthly — and the time of day. All times display in your local timezone.

6. **Configure notifications.** Enable **Raise a pull request** to have the agent open a PR with its changes. Enable **Send a Slack notification** and enter a channel name (for example, `docs-team`) to receive a summary in Slack.

7. Click **Create Agent**.
</Steps>

The agent appears in your list and runs automatically at the next scheduled time.

### Templates that require input

Three templates ask you to provide a value specific to your organization:

| Template | Required input | Example |
|----------|---------------|---------|
| **Docs SEO Review** | Your company marketing website URL | `https://www.example.com` |
| **README Review** | Repository name | `my-org/my-repo` |
| **Pylon Support Review** | Where to deliver the report | `post to Slack channel #docs-team` |

The form prevents saving until you replace the `<input_needed>` placeholder with a real value.

### Write effective custom prompts

If you select **Custom agent**, write a prompt that is self-contained and repeatable. The agent runs without human interaction, so include everything it needs.

<Tabs>
  <TabItem label="Release notes">
    ```text
    Generate release notes for all tickets completed since the
    last release. Organize by Features, Improvements, and Bug
    Fixes. Write for end users.
    ```
  </TabItem>
  <TabItem label="Doc audit">
    ```text
    Review the docs/ directory for outdated content. Flag any
    references to deprecated APIs or removed features. Create
    a summary of what needs updating.
    ```
  </TabItem>
  <TabItem label="README sync">
    ```text
    Check if the README reflects the current project structure
    and dependencies. Update any outdated installation
    instructions or configuration examples.
    ```
  </TabItem>
</Tabs>

:::tip[Prompt tips]
- Be specific about the output format and audience.
- Reference file paths to focus the agent on relevant code.
- Include grouping or sorting instructions for generated content.
- Prompts can be up to 10,000 characters.
:::

## Choose a schedule

The schedule picker supports four frequencies. All times display in your local timezone.

| Frequency | Options | Example |
|-----------|---------|---------|
| **Hourly** | Runs every hour on the hour | Every hour |
| **Daily** | Select the time of day | Every day at 9:00 AM |
| **Weekly** | Select the day and time | Every Monday at 9:00 AM |
| **Monthly** | Select the day of the month (1–28) and time | First of every month at 9:00 AM |

:::note
Monthly schedules cap at the 28th to avoid inconsistencies across months with different lengths.
:::

## Manage your agents

### Enable or disable an agent

Toggle the switch next to any agent to enable or disable it. Disabled agents keep their configuration but stop running until you re-enable them.

### Edit an agent

Click the edit icon (pencil) on the agent row to update the name, prompt, schedule, or notification settings. If you switch to a different template after editing the prompt, a confirmation dialog asks whether to replace your changes.

### Delete an agent

Click the delete icon (trash) on the agent row and confirm the deletion. Deleting an agent removes it permanently, but links to earlier editor sessions from run history remain accessible.

:::caution
Deleting a scheduled agent cannot be undone.
:::

## View run history

Expand any agent row by clicking the chevron to see its recent runs. Run history displays the five most recent executions, sorted from newest to oldest.

Each run shows:

| Element | Description |
|---------|-------------|
| **Status icon** | Green checkmark for succeeded, red cross for failed, yellow clock for running |
| **Timestamp link** | When the run started — click to open the Docs Agent session with the full output |

Clicking a run link opens the editor where you can review everything the agent did, including the generated content, files changed, and any pull requests raised.

## Next steps

- [Create documentation](/agent/create) — Generate READMEs, API references, and guides with custom prompts.
- [Update and review](/agent/update-review) — Keep documentation in sync with code changes.
- [Integrations](/agent/integrations) — Pull content from Slack, Notion, Linear, and more.