# Documentation Site

This directory contains the generated GitHub Pages site for agentic-catalog.

## Files

- [`index.html`](index.html) - Main SPA interface
- [`styles.css`](styles.css) - Red Hat-themed styling
- [`app.js`](app.js) - JavaScript logic for rendering and search (XSS-safe)
- `data.json` - Generated data (auto-updated by CI)
- `.nojekyll` - Disables Jekyll processing

## Local Development

Run locally:
```bash
python -m http.server 8000
```

Then visit: http://localhost:8000

## Data Generation

The `data.json` file is automatically generated by:
```bash
python ../scripts/build_website.py
```

This script parses all agentic collections and MCP configurations.

### ABEval reports (optional)

When present under the repository root, **`eval/<pack_name>/<skill_name>/report.json`** (and optional sibling **`report.md`**) are read at build time only. The **[`scripts/eval_site_enrichment.py`](../scripts/eval_site_enrichment.py)** step attaches a compact summary to each **catalog-listed** skill (`collection.yaml` → `contents.skills` / `orchestration_skills`) and adds **`evaluation_summary`** on the pack. Only the **latest** eval output should be kept in git per skill.

The **`name`** of each skill in **`collection.yaml`** must match the **`skills/<name>/`** directory and the **`eval/<pack>/<name>/`** folder segment so lookups resolve correctly.

## Validation for Docs Metadata

When changing docs presentation metadata (`styles.css`, `app.js`, `mcp.json`):

1. Prefer canonical tokens from `styles.css` over hardcoded values.
2. Run validation checks:

```bash
make test
```

3. Review validation output before merge.

## Security

All DOM manipulation in `app.js` uses `textContent` and `createElement` to prevent XSS vulnerabilities. No `innerHTML` is used with user-provided data.
