# Catalog quality & depth labels

Honest classification for lvlltd.com first-party skills. **Never invent sales or fake depth.**
Unlock counts and revenue claims come only from [`/api/proof`](https://lvlltd.com/api/proof).

## Top-level fields (agent-friendly)

| Field | Meaning |
|-------|---------|
| `quality_score` | 0–100 mirror of `quality.score_0_100` |
| `last_verified` | ISO timestamp of last `classify-skill-depth` run |
| `implementation_quality` | `deep` · `standard` · `outline_only` · `stub` |
| `depth_label` | Human label for `implementation_quality` |
| `default_shelf` | `featured` · `catalog` · `templates` |
| `demote_default` | `true` when outline-only/stub (demoted from curated shelves) |

Machine index: [`/quality/depth.json`](https://lvlltd.com/quality/depth.json) · catalog root: `quality_meta`.

Regenerate: `npm run classify:depth` (also part of `npm run build`).

## Labels (`implementation_quality`)

| Value | Badge | Meaning |
|-------|-------|---------|
| `deep` | Deep | Substantial unique detail/sample + hand-curated / premium runtime / packaging pilot signals |
| `standard` | Standard | Solid free outline + sample + sealed structure; not template boilerplate |
| `outline_only` | Outline-only | Thin capability-pack outline — valid inventory, demoted from default curated shelves |
| `stub` | Stub | Missing sample/outline or explicit stub flag |

## Default shelves

- **featured** — Deep/Standard + strategic/flagship/start-here canaries
- **templates** — outline_only / template / merge candidates (hidden when “Hide drafts/templates” is on)
- **catalog** — everything else

Source files:

- `artifacts/skill-depth.json` — full audit rows
- `public/quality/depth.json` — public machine index
- `public/catalog.json` → `skills[].implementation_quality`, `depth_label`, `demote_default`, `quality`

## Quality gate (first-party curated)

```bash
node scripts/classify-skill-depth.mjs
node scripts/quality-gate-first-party.mjs
QUALITY_GATE_STRICT=1 node scripts/quality-gate-first-party.mjs
```

Minimums (curated):

- outline.json ≥ 1800 bytes
- sample.md ≥ 2000 bytes
- not template outline pattern
- quality score ≥ 42 (except tripwire start-here)

## Rebuild hook

After `build-catalog.js`, run:

```bash
node scripts/classify-skill-depth.mjs
```

Add to `package.json` `build` when ready for full CI enforcement.
