<!-- source-hash: 54e69314db343a8160db105f0636d9c5 -->
Canonical metadata registry for all OpenFrame dev-center surface sections (Roadmap, Bug-fixes & Enhancements, Releases, Onboarding Guides, Help Center). Centralizes per-section icon, navigator card copy, hero copy, search config, and filter config into a single source of truth consumed by both the homepage navigator grid and destination page heroes.

## Key Components

### Exported Constants

| Export | Purpose |
|--------|---------|
| `ROADMAP_STATUS_OPTIONS` | Filter options for roadmap status (`all`, `completed`, `in_progress`) |
| `DELIVERY_TASK_TYPE_OPTIONS` | Filter options for delivery task type (`all`, `Bug`, `Request`) |
| `TICKET_STATUS_OPTIONS` | Filter options for help center ticket status (`all`, `open`, `closed`) |
| `OPENFRAME_DEV_SECTIONS` | Primary registry — keyed object of all 5 dev-center sections |

### Types

- **`OpenframeDevSection`** — Shape contract for each registry entry, including `href`, `icon`, `navigator`, `hero`, `search`, and `filter` fields
- **`OpenframeDevSectionKey`** — Union type of valid section keys: `"roadmap" | "delivery" | "releases" | "onboarding" | "tickets"`

### Sections in the Registry

| Key | Route | Notes |
|-----|-------|-------|
| `roadmap` | `/roadmap` | Status filter |
| `delivery` | `/bug-fixes-and-enhancements` | Task type filter |
| `releases` | `/releases` | Release status filter |
| `onboarding` | `/onboarding-guides` | Navigator card only — `hero`/`search`/`filter` are inert |
| `tickets` | `/tickets` | Ticket status filter |

## Usage Example

```typescript
import { OPENFRAME_DEV_SECTIONS, type OpenframeDevSectionKey } from './openframe-dev-sections'

// Render all navigator cards (skip onboarding if route is not hosted)
const navSections = Object.values(OPENFRAME_DEV_SECTIONS).filter(
  (s) => s.href !== '/onboarding-guides'
)

// Access a specific section's hero copy
const { title, description } = OPENFRAME_DEV_SECTIONS.roadmap.hero

// Type-safe section key lookup
function getSectionConfig(key: OpenframeDevSectionKey) {
  return OPENFRAME_DEV_SECTIONS[key]
}
```

> **⚠️ Embedder Note — `onboarding` entry:** The `onboarding` section drives the homepage navigator card only. Its `hero`, `search`, and `filter` fields are intentionally empty/null. Embedders that don't host `/onboarding-guides` should filter it out before iterating the registry.