Skip to content

Generate listings

Markdown

.agents/skills/generate-listings/SKILL.md — 209 lines of instruction that ship inside the starter. This page is generated from it, so it says what the skill does without republishing it.

The skill description, verbatim — this is the text an agent matches your request against:

Fill a ZeroDirs directory with verified listings — the full pipeline from a candidates TSV to a promoted dataset. Verify every candidate exists with seed/check-links.mjs, write each description only from the fetched page, record provenance, lint the result with seed/check-listings.mjs, check the shape with seed/check-dataset.mjs –profile buyer, preview with ZERODIRS_DATASET, then promote with pnpm content:use. Use when asked to generate listings, write descriptions in bulk, seed a directory with content, or fill an empty directory site.

  1. Stage 1 — prove each candidate exists
  2. Stage 2 — write each listing from its own page
  3. Stage 3 — lint the prose
  4. Stage 4 — check the shape
  5. Stage 5 — preview without touching your content
  6. Stage 6 — promote
  7. Report back
Terminal window
node seed/check-links.mjs seed/.out/candidates.tsv --json seed/.out/links.json
node seed/check-listings.mjs seed/datasets/<slug>/listings
node seed/check-dataset.mjs seed/datasets/<slug> --profile buyer
pnpm content:use <slug> --yes
pnpm check && pnpm test && pnpm build
pnpm content:use

src/content/ · public/logos/ · src/content/schema.ts · site.config.ts · seed/datasets/ai-tools/ · seed/datasets/ai-tools/meta.json · seed/datasets/ai-tools/categories.json · seed/datasets/ai-tools/tags.json · seed/datasets/ai-tools/logos/ · seed/datasets/ai-tools/blog/ · src/loaders/files.ts · seed/datasets/

Skills load themselves — you describe the outcome, not the skill. “Add a Compliance category with an icon and seed it” is enough for an agent that can see .agents/skills/; Claude Code reads .claude/skills/, which pnpm skills:sync mirrors from .agents/ on every install. See Working with an agent.