List captured ghostwriter profiles under agents/reference/ghostwriter/ as a numbered table with confidence, last-fetched, and stale-warning flags. Read-only.
Scanned 6/5/2026
Install via CLI
openskills install event4u-app/agent-config---
model_tier: inherit
name: ghostwriter:list
pack: gtm-marketing
tier: 2
cluster: ghostwriter
sub: list
skills: [ghostwriter]
description: List captured ghostwriter profiles under agents/reference/ghostwriter/ as a numbered table with confidence, last-fetched, and stale-warning flags. Read-only.
suggestion:
eligible: true
trigger_description: "list ghostwriter profiles, show available public-figure voices, which ghostwriters do I have, ghostwriter inventory"
trigger_context: "user wants to see which ghostwriter profiles exist locally and which are stale"
workspaces:
- agent-config-maintainer
packs:
- meta
---
# /ghostwriter:list
Read-only listing of every consumer-side ghostwriter profile under
`agents/reference/ghostwriter/`. Numbered, with the fields needed to pick one
for `/ghostwriter:write` or to spot stale profiles that need a
re-fetch.
## Steps
### 1. Scan
Enumerate `agents/reference/ghostwriter/*.md`, excluding:
- `README.md` (directory anchor, not a profile).
- Any file whose frontmatter carries `fictional: true` (package-side
fixtures are not consumer profiles; they should never appear in
`agents/reference/ghostwriter/` — surface a warning if one is found).
For each remaining file, read the frontmatter and extract:
| Field | Source |
|---|---|
| Slug | filename without `.md` |
| Name | `identity.name` |
| Role | `identity.role_or_title` |
| Category | `identity.public_figure_category` |
| Confidence | `identity.confidence` (`low` / `med` / `high`) |
| Verification | `source_provenance.verification` (`fetched` / `user-asserted`) |
| Last fetched | `source_provenance.last_fetched_at` (ISO date) |
| Stale | `last_fetched_at` older than 90 days → `⚠️` |
| User-asserted | `verification == user-asserted` → `⚠️` |
### 2. Render
Empty result → print and exit:
```
No ghostwriter profiles found under agents/reference/ghostwriter/.
Run /ghostwriter:fetch <url-or-name> to capture one.
```
Otherwise, print a numbered table sorted by slug:
```
# Ghostwriters (N profiles)
# Slug Name Confidence Last fetched Flags
1 alice-walker Alice Walker high 2026-04-12
2 jane-doe-author Jane Doe med 2025-11-03 ⚠️ stale
3 bob-smith Bob Smith low 2026-05-01 ⚠️ user-asserted
Next: /ghostwriter:show <slug> · /ghostwriter:write --as=<slug>
/ghostwriter:fetch <slug> --force-refresh # for stale profiles
```
Column widths are illustrative — pick the widest entry per column.
### 3. Fixture leak warning (defensive)
If Step 1 encountered a `fictional: true` file under
`agents/reference/ghostwriter/`, print **after** the table:
```
⚠️ agents/reference/ghostwriter/<file>.md carries `fictional: true` — fixtures
belong in the package source, not in consumer ghostwriter/. Move
or delete this file.
```
This should not normally happen — `scripts/lint_ghostwriter_source.py`
guards the package side (run via the package's CI), and consumer-side
`fetch` always writes `fictional: false`.
## Rules
- **Read-only.** Do not modify or move any file.
- **Do NOT commit, push, or open a PR.** No git ops.
- **Do NOT inline voice samples.** Use `/ghostwriter:show <slug>` for
the full profile body — this command is an index, not a renderer.
- **Do NOT include `fictional: true` profiles in the main table** —
they are package-side schema examples, not consumable styles. Surface
any leak as a separate warning (Step 3).
## See also
- [`/ghostwriter`](../ghostwriter.md) — parent cluster.
- [`/ghostwriter:show`](show.md) — render a single profile in full.
- [`/ghostwriter:fetch`](fetch.md) — refresh stale profiles with `--force-refresh`.
- [`/ghostwriter:write`](write.md) — consume side; reuses the slugs listed here via `--as=<slug>`.
- [`ghostwriter-schema`](../../../docs/contracts/ghostwriter-schema.md) — field definitions used in the table.
No comments yet. Be the first to comment!