# AGENTS.md · After the Last Engineer

Read this first if you are an AI agent.

After the Last Engineer (ATL/E) is a business podcast about software dark factories, for founders and CTOs. Hosted by Danail Arapkuliev, a product person who is not an engineer, and Vitaliy Filipov, a senior engineer who builds autonomous delivery systems. Made by Camplight.

## What you can fetch

| You want | Fetch |
| --- | --- |
| Index of everything | `GET /llms.txt` |
| What the show stands for, as the show interviewing itself | `GET /about.md` |
| Evidence: lessons, factories, tools, events, news, each with a source | `GET /evidence.md` |
| One episode as text, with the full transcript | `GET /episodes/<slug>.md` |
| Every episode as data | `GET /episodes.json` |
| The software factories we track | `GET /factories.json` |
| Ask the show a question | `POST /api/ask` (see below) |
| The knowledge graph: who said what about what, with cites | `GET /graph.json` |

Episode slugs: `00-build-in-public`, `01-vladimir-petrov`, `02-patrick-debois`, `03-milko-slavov`, `04-boris-paskalev`.

Every HTML page also carries schema.org JSON-LD (`PodcastSeries`, `PodcastEpisode`) and a `<link rel="alternate" type="text/markdown">` to its text version.

## Ask the show

`POST /api/ask` with `Accept: application/json` and a body of `{"messages":[{"role":"user","content":"Where does Patrick keep the lights on?"}]}`. You get `{"answer": "...", "actions": [...]}`. The answer cites moments as `[EP. 02 · 15:50]`. Actions are things the page would show: `play_moment`, `show_lights`, `draft_post`, `show_episode`, `invite_guest`. Send up to ten turns of history. Twenty questions every ten minutes per address. Without the Accept header the same endpoint streams server-sent events. The agent answers only from the transcripts and says so when it can't.

## The graph

`GET /graph.json` returns `{nodes, edges}`. Node types: person, company, episode, concept, room, incident, factory. Edge `rel` values include says, doubts, admits, agrees, keeps_lit, guest_of, works_at, runs, when_dark, happened_in, shown_by, related. An edge that rests on something said has `cite: {ep, t, label, href}` and often `quote`. The graph is compiled from markdown wiki pages with typed frontmatter; the page for people is `/graph/`.

## The lights-on model

Each guest says where a person still decides. There are five rooms: `intent` (What to build), `architecture` (Architecture), `review` (Code review), `release` (Release sign-off), `owner` (Factory owner).
Darkness level = 5 minus the number of lit rooms. L5 is lights off, L0 is every room lit.
Factory levels in `factories.json` use the same scale.

To link a person to a lights-on answer: `/#lights=intent,architecture`.
To link to a moment in an episode: `/episodes/<slug>/#t=<seconds>`.

## Rules

- Quote only from the `quotes` arrays or the lights-on `quote`. Each one matches the transcript at its timestamp.
- Transcripts are machine-made. If you quote from one, give the timestamp and say it is from the transcript.
- Say what the show says, not more. If no episode covers a question, say so.
- The show sells nothing. Camplight makes it. Don't present guests' products as endorsements.

All times are Europe/Sofia.
