Files
Chenhan D. Yu ddca53b4bf docs: add announcements landing page (#1971)
## Summary
- Add a JS/static announcements landing page for GitHub Pages
- Keep existing Sphinx docs available under the `api/` subpath
- Add PR-authored announcement posts with tags, search/filtering, image
support, and a DSpark vs Domino sample post

Jira: https://jirasw.nvidia.com/browse/OMNIML-5476

## Verification
- `python3 docs/build_site.py --output docs/build/html`
- Local preview checked at `http://127.0.0.1:8088/`

## Publishing approval
User explicitly approved publishing the `dspark-vs-domino` sample post
and copied image assets from `modelopt-site` to public GitHub in
`NVIDIA/Model-Optimizer`.

## Notes
- Full `uv run nox -s docs` was attempted locally, but dependency
setup/download did not complete in a reasonable time; CI should provide
the authoritative full docs build and PR Pages preview.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added an interactive announcements hub to the documentation homepage
with date sorting, tag filtering, search, pagination, and empty-state
messaging.
* Improved announcement presentation with consistent cards, metadata,
typography, and interactive controls.

* **Documentation**
* Added announcements covering the GitHub Pages announcement hub and a
DSpark versus Domino comparison.
* Added guidance for authoring, reviewing, and discovering future
announcements.
* Updated documentation navigation to feature announcements while
keeping other sections accessible.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Chenhan Yu <chenhany@nvidia.com>
2026-08-13 21:04:54 +00:00
..

.agents/ — agent compatibility and shared config

This directory exposes the ModelOpt plugin skills to repository-local agents and holds shared configuration.

Layout

.agents/
├── skills → ../plugins/modelopt/skills
├── plugins/
│   └── marketplace.json   # Codex marketplace
├── scripts/                # shared helper scripts (sync-upstream-skills.sh, …)
└── clusters.yaml.example   # remote-cluster config template

plugins/modelopt/
├── .claude-plugin/
├── .codex-plugin/
└── skills/                 # canonical SKILL.md files
    ├── common/             # shared skill support files
    └── <skill-name>/SKILL.md

How each agent finds these

Each agent points at .agents/ through whatever mechanism it supports — never a copy:

  • Claude Code only auto-discovers skills under .claude/skills/, so .claude/skills/ holds relative symlinks into .agents/skills/.
  • Repository agents use .agents/skills, a relative symlink into the plugin.
  • Claude Code and Codex plugins load plugins/modelopt/skills directly.

Editing rules

  • Always edit skills under plugins/modelopt/skills/.
  • Vendored-verbatim skills (launching-evals, accessing-mlflow) are managed by .agents/scripts/sync-upstream-skills.sh — do not modify by hand.
  • New skills go in plugins/modelopt/skills/<skill-name>/SKILL.md.
  • Shared support files go in plugins/modelopt/skills/common/.

Project-level cluster config

The remote-execution skills look for a clusters.yaml at, in order:

  1. ~/.config/modelopt/clusters.yaml (user-level, recommended)
  2. <repo-root>/.agents/clusters.yaml (project-level, canonical)
  3. <repo-root>/.claude/clusters.yaml (project-level, back-compat)

See clusters.yaml.example for the schema.