# Plan directory

> Turn a niche idea into a ZeroDirs directory plan — a candidates TSV of real product names and URLs, plus proposed categories and tags blocks for site.config.…

You are reading one page of the ZeroDirs documentation. ZeroDirs is a paid Astro + Cloudflare Workers starter for directory sites: every page is rendered to static HTML at build time, the site ships no client JavaScript outside `/search/`, and one file — `site.config.ts` — carries roughly 80% of the customisation.

Two things to hold on to before you act on anything below:

- `site.config.ts` is validated by a zod schema with ten cross-field rules. After any edit to it, run `pnpm check:config`; every problem is reported as `site.config.ts › <path>: <message>` and the whole file is checked at once.
- The repository ships its own `AGENTS.md` with twenty hard rules, and a machine-checked test suite behind them. If you are working inside a ZeroDirs project, read that file first — it overrides anything general you infer from this page.

Source: https://zerodirs.com/docs/agents/recipes/plan-directory/

---

<!-- DO NOT EDIT — generated from zerodirs/zerodirs .agents/skills/ by .github/docs/generate.ts (docs-sync.yml). Edit the source, not this page. -->

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

## When an agent picks this up

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

> Turn a niche idea into a ZeroDirs directory plan — a candidates TSV of real product names and URLs, plus proposed categories and tags blocks for site.config.ts. Covers picking the niche, sizing the taxonomy against the pSEO and pagination thresholds, and the one rule that makes the rest of the pipeline safe: this stage emits names and URLs only, never invented products. Use when asked to plan a new directory, choose categories for a niche, or build a candidate list before generating listings.

## What it walks through

1. The one rule
1. Step 1 — pick the niche and the shape
1. Step 2 — size it against the thresholds
1. Step 3 — write `candidates.tsv`
1. Step 4 — propose the config blocks
1. Hand off
   - how each candidate was sourced, and how many rows you are not sure about

## Commands it runs

```sh
node seed/check-dataset.mjs <dir> --profile buyer
node seed/check-links.mjs seed/.out/candidates.tsv --json seed/.out/links.json
```

## Files it touches

`site.config.ts` · `seed/check-links.mjs` · `seed/check-dataset.mjs`

## Using it

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](https://zerodirs.com/docs/agents/overview/).
