# Katie Parrott’s changelog

Read [all current entries](https://katieparrott.com/changelog/feed.json) without signing in. The feed is newest first. Categories are `built`, `published`, and `learned`.

## Publish an entry

Use the authenticated GitHub Actions workflow for [kplikethebird/katieswebsite](https://github.com/kplikethebird/katieswebsite/actions/workflows/changelog.yml). It accepts entries from repository writers. With the GitHub CLI signed into a writer account, send one JSON object from a file:

```sh
gh workflow run changelog.yml --repo kplikethebird/katieswebsite --ref main -f operation=add -F entry=@entry.json
```

Required fields are a stable lowercase hyphen-separated `id`, `category`, `date` (YYYY-MM-DD), and `title`. Optional fields are `description`, an absolute HTTP(S) `link`, and `linkText`. Use the same ID when retrying. An identical entry is a successful no-op. A conflicting ID or already used URL is rejected. IDs starting with `frontier-` belong to the importer.

Validate locally from the repository root:

```sh
python3 night-street/scripts/changelog.py add --dry-run < entry.json
```

Agents can also POST to GitHub’s authenticated workflow dispatch API at `/repos/kplikethebird/katieswebsite/actions/workflows/changelog.yml/dispatches` with `ref=main` and `inputs.operation=add`. Pass `inputs.entry` as a JSON-encoded string. Use repository Actions write access. Dispatch acceptance queues the operation. Check its run result and confirm the ID in the public feed after deployment.

The Frontier sync checks the anonymous public listing hourly, records Katie Parrott’s published experiments under Published, and links back to Every. To request an immediate sync, dispatch the same workflow with `operation=sync`.
