<!-- source: openspec/changes/a4-document-the-11-openspec-agent/tasks.md -->

---
title: Tasks — Document 11 openspec-* agent slugs in entities.md
audience:
  - executor
---

# Tasks — Document 11 openspec-* agent slugs in entities.md

## Phase 1 — Spec Amendment (single PR)

**Goal:** Update `current/db/entities.md` to enumerate all 11 `openspec-*` agent slugs and declare the free-text contract.

- [ ] Audit live codebase to extract the exact 11 `openspec-*` slug strings in use (grep `forge_findings` insert sites / agent constants).
  Done when: a flat list of 11 slugs is committed to a scratch note or inline comment in the PR description.

- [ ] Amend `current/db/entities.md`: replace the v1 six-slug table with a full table covering all 11 `openspec-*` agents; add a prose note stating `agent` is free-text with no CHECK constraint and the UI renders whatever string is stored.
  Done when: `git diff current/db/entities.md` shows the updated table and free-text contract note, and no other files are modified.

- [ ] Run `pnpm openspec:regen` and confirm clean output.
  Done when: `pnpm openspec:regen` exits 0 with no diff on generated files.

- [ ] Execute a `--persist` smoke run that writes at least one `openspec-*` finding to the DB and verify the row is present.
  Done when: `SELECT agent FROM forge_findings WHERE agent LIKE 'openspec-%' LIMIT 1` returns a row in the target Supabase instance.

**Checkpoint:** `current/db/entities.md` lists all 11 slugs with free-text note, `pnpm openspec:regen` is clean, and a persisted `openspec-*` finding row exists in the DB.
