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

---
audience:
  - executor
---
# Verification — document-openspec-agent-slugs

## Spec alignment

Done means `openspec/current/db/entities.md` contains a complete, accurate enumeration of all agent slugs that write to `forge_findings.agent`: the 6 v1 producers already present and the 11 new `openspec-*` producers introduced by the `add-openspec-audit-pass` work. The `forge_findings` entity section must include a clearly marked free-text contract note stating that the column is `text NOT NULL` with no CHECK constraint, and that the UI renders whatever string is stored verbatim. No other files in `openspec/current/` are expected to change; no files under `openspec/archive/` may be touched.

At archive time the change folder must contain the four standard artefacts (`proposal.md`, `design.md`, `tasks.md`, `verification.md`) and nothing else. The amendment is documentation-only: the diff must not include any migration file, any TypeScript source change, or any modification to generated files that `pnpm openspec:regen` would overwrite.

## Hallucination risks

- MUST appear: `openspec/current/db/entities.md` — the edit target; a diff that modifies any other path is wrong
- MUST appear: a `### openspec-* producers` (or equivalent) subheading grouping the 11 new slugs
- MUST appear: the free-text contract note containing the phrase `text NOT NULL` and `no CHECK`
- MUST appear: all 6 v1 slug strings retained verbatim (copy from the SQL comment in `supabase/migrations/20260507140000_add_forge_tables.sql`)
- MUST NOT appear: any new file under `openspec/archive/2026-06-02-add-openspec-audit-pass/` — that folder is frozen
- MUST NOT appear: a new migration file (e.g. any path matching `supabase/migrations/*_agent*`)
- MUST NOT appear: a TypeScript union type narrowing `agent` to a literal union (the contract is `string`, not `'slug-a' | 'slug-b'`)
- MUST NOT appear: the word `SHALL` or `WHEN/THEN` — EARS notation is banned in this codebase

## Pattern references

- `openspec/current/db/entities.md` (current state) — mimic the existing column-description format and table layout; the amendment extends, not restructures, the file
- Any previously archived `current/db/entities.md` diff in `openspec/archive/` — follow the same heading hierarchy and note-block style (`> Note:`) used in prior doc-only changes
- `supabase/migrations/20260507140000_add_forge_tables.sql` — the SQL comment on `forge_findings.agent` is the canonical source for v1 slug strings; the doc table must match it character-for-character
- `openspec/archive/` any `verification.md` from a prior doc-only change — confirms the four-section structure and `Done when:` assertion syntax expected here

## Acceptance

- Done when: `[ -f openspec/current/db/entities.md ]`
- Done when: `grep -c 'openspec-' openspec/current/db/entities.md` returns `11`
- Done when: `grep -c 'text NOT NULL' openspec/current/db/entities.md` returns `1`
- Done when: `grep -c 'no CHECK' openspec/current/db/entities.md` returns `1`
- Done when: `pnpm openspec:regen`
- Reviewer confirms: the 11 `openspec-*` slug strings in the doc match exactly what `rg -l "agent:\s*['\"]openspec-" apps/ packages/` resolves to in the merged branch — no slug is invented, none is omitted
- Done when: `gh pr list --head feat/document-openspec-agent-slugs/phase-1` returns ≥`1`
- Done when: `jq -r '.outcome' ~/.forge/state/RAP-1277.json` returns `'completed-with-pr'`
