> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# Weekly changelog

:::info

**Goal:** Get a changelog draft every Friday without anyone remembering to write it.

:::

## What it does

Every Friday, a schedule scans the pull requests merged since the last changelog entry (falling back to the last 7 days if no entry exists) and drafts the next one. The plugin reads the merged work and writes the entry in your changelog's style, then opens a PR with the draft. If a draft PR from a previous run is still open, it skips opening another one.

## The plugin

[`tessl/changelog-writer`](https://tessl.io/registry/tessl/changelog-writer) scans the PRs merged since the last entry, drafts the next one, and opens a PR with it. Install it with:

```bash
tessl install tessl/changelog-writer
```

## Define the schedule

Run it every Friday at 16:00 UTC. Add this entry to the `schedules` block in your project's `tessl.json`, and keep any other entries already in that block. Replace `production` with the name of your environment (see the [Schedules overview](/schedules/overview.md) for the prerequisites).

<div class="gb-stepper">

<div class="gb-step">

**Add the schedule entry**

```json
{
  "schedules": {
    "weekly-changelog": {
      "action": {
        "skill": "tessl/changelog-writer",
        "environment": "production"
      },
      "schedule": "weekly on friday at 16:00"
    }
  }
}
```

</div>

<div class="gb-step">

**Validate and push**

Signed out, validation checks the local file only. Signed in, with a `name` that identifies your project, it also runs the checks Tessl applies when the file syncs and when a run starts. Commit and push the change, then confirm Tessl applied the schedule in your workspace before checking its run history.

```bash
tessl schedule validate
git add tessl.json
git commit -m "chore(docs): add weekly changelog schedule"
git push
```

</div>

<div class="gb-step">

**Check the runs**

Open the schedule in the web app, or run `tessl schedule runs <id>` to see its run history.

</div>

</div>

## Customize with instructions

Match your changelog's house style by adding `instructions` inside the same entry's `action`. Keep all other entries in the `schedules` block:

```json
{
  "schedules": {
    "weekly-changelog": {
      "action": {
        "skill": "tessl/changelog-writer",
        "environment": "production",
        "instructions": "Group entries under Added, Fixed, and Changed. Skip dependency bumps."
      },
      "schedule": "weekly on friday at 16:00"
    }
  }
}
```

## Create your own

Want a different format? [Create your own plugin](/creating-skills-and-plugins/create-a-plugin.md) that reads the git log and writes an entry your way.
