Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Agentops Create Content

ASecurity

Use when adding a new documentation page to the AgentOps site — creating MDX content pages with code examples, Demo components, CodeBlock snippets, framework cards, and navigation updates. Triggers on requests like "add a page for X", "create content for Y", "new topic page", or expanding stub pages into full content.

2 stars
0 votes
0 copies
1 views
Added 9/19/2026
developmenttypescriptpythongoshellbashapidocumentation

Works with

cliapi

Security Analysis

A100/100

Scanned 9/19/2026

$npx -y skills add eformat/agentops-redhatskills-com --skill agentops-create-content --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agentops Create Content?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Agentops Create Content
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/eformat-agentops-create-content/badge)](https://www.skillsdirectory.com/skills/eformat-agentops-create-content)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: agentops-create-content
description: Use when adding a new documentation page to the AgentOps site — creating MDX content pages with code examples, Demo components, CodeBlock snippets, framework cards, and navigation updates. Triggers on requests like "add a page for X", "create content for Y", "new topic page", or expanding stub pages into full content.
---

# Create Content Page

Add a new full-content documentation page to the AgentOps site following the established boilerplate pattern.

## Boilerplate Reference

Every content page follows the pattern established in `src/app/(docs)/tracing/connect-to-mlflow/`. Read that page and its `code-examples.ts` before creating new content.

## Workflow

```dot
digraph create_content {
    rankdir=TB;
    "Read boilerplate" -> "Gather sources";
    "Gather sources" -> "Create directory";
    "Create directory" -> "Write code-examples.ts";
    "Write code-examples.ts" -> "Write page.mdx";
    "Write page.mdx" -> "Update layout.tsx nav";
    "Update layout.tsx nav" -> "make build";
    "make build" -> "Visual verify";
}
```

### 1. Read the boilerplate

Read these files to understand the current pattern:

- `src/app/(docs)/tracing/connect-to-mlflow/page.mdx` (page structure)
- `src/app/(docs)/tracing/connect-to-mlflow/code-examples.ts` (code pattern)
- `src/app/(docs)/layout.tsx` (navigation structure)

### 2. Gather source material

Collect content from all sources the user provides: repos, web docs, existing code. Use Explore agents for repos and WebFetch for URLs. Extract:

- Conceptual explanations
- Working code examples (real, not contrived)
- Configuration snippets (YAML, env vars, Helm values)
- CLI commands

### 3. Create the directory

```
src/app/(docs)/<parent-topic>/<subtopic>/
```

### 4. Write code-examples.ts

```typescript
import { highlight } from '@/utils/highlight';

// QuickNav items — must match heading IDs generated by slugify()
export const quickNavItems = [
  { id: 'section-heading', text: 'Section Heading', level: 2 },
  { id: 'sub-heading', text: 'Sub heading', level: 3 },
];

// Raw code as template literals
const myCode = `import os
print("hello")`;

// Export highlighted HTML for CodeBlock
export const myCodeHighlighted = highlight(myCode);

// Export file arrays for Demo (multi-tab code viewer)
export const myFiles = [
  { name: 'main.py', content: highlight(myCode), language: 'python' },
  { name: 'requirements.txt', content: highlight(reqCode), language: 'text' },
];
```

**Heading ID rules:** The `slugify()` function in `mdx-components.tsx` lowercases, replaces non-alphanumeric runs with `-`, and trims leading/trailing hyphens. QuickNav `id` values must match exactly.

**highlight()** is a custom tokenizer in `src/utils/highlight.ts` — no external deps. It handles Python, JS, YAML, and shell syntax.

### 5. Write page.mdx

Follow this structure exactly:

```mdx
import { Demo } from '@/components/Demo'
import { CodeBlock } from '@/components/CodeBlock'
import { QuickNav } from '@/components/QuickNav'
import { FrameworkCards } from '@/components/FrameworkCards'
import { MarkdownLink } from '@/components/MarkdownLink'
import { quickNavItems, /* ... */ } from './code-examples'

<QuickNav items={quickNavItems} />

<div style={{ paddingTop: '1.5rem', paddingBottom: '5rem' }}>

# Page Title

<p className="MdSubtitle">
  One-line description of what this page covers.
  <MarkdownLink />
</p>

Two to three paragraphs of overview text explaining the concept,
why it matters, and how it works on OpenShift AI.

<FrameworkCards />

## First Section

### Subsection

Explanatory text.

<CodeBlock title="Descriptive title">{myCodeHighlighted}</CodeBlock>

## Agent Frameworks

### LangGraph

Description of how this framework uses the feature.

<Demo files={langgraphFiles} defaultCollapsed={true}>
  <div className="DemoPreviewText">
    <strong className="MdStrong">Key function or pattern</strong>
    <span> — What the example demonstrates</span>
  </div>
</Demo>

### CrewAI
...

</div>
```

**Page structure order:**
1. Imports
2. `<QuickNav items={quickNavItems} />`
3. Wrapper `<div>` with padding
4. `# Title` + `<p className="MdSubtitle">` with `<MarkdownLink />`
5. Overview paragraphs
6. `<FrameworkCards />` (if page covers per-framework examples)
7. Concept/setup sections with `<CodeBlock>`
8. Per-framework sections with `<Demo>` (collapsed by default)
9. Deployment/operational sections with `<CodeBlock>`
10. Closing `</div>`

### Available components

| Component | Use for | Props |
|-----------|---------|-------|
| `CodeBlock` | Single code snippet | `title` (string), children = highlighted HTML |
| `Demo` | Multi-file tabbed viewer | `files` (array), `defaultCollapsed` (boolean) |
| `FrameworkCards` | Agent framework card grid | none — links to `#langgraph`, `#crewai`, etc. |
| `QuickNav` | Right-sidebar TOC | `items` array of `{id, text, level}` |
| `MarkdownLink` | "View as Markdown" link | none — uses `usePathname()` |

### Tables in MDX

Use raw JSX with the `ApiTable` wrapper:

```mdx
<div className="ApiTable">
  <table>
    <thead><tr><th>Column</th><th>Description</th></tr></thead>
    <tbody>
      <tr><td><code className="MdCode">value</code></td><td>Explanation</td></tr>
    </tbody>
  </table>
</div>
```

Markdown tables also work (auto-wrapped by `mdx-components.tsx`), but JSX gives more control for inline code formatting.

### 6. Update navigation

In `src/app/(docs)/layout.tsx`, add the route to the `navigation` object:

```typescript
{
  title: 'Parent Topic',
  href: '/parent-topic',
  children: [
    { title: 'New Subtopic', href: '/parent-topic/new-subtopic' },
  ],
},
```

### 7. Build and verify

```bash
make build          # Must compile with zero errors
npx serve out -l 3000 &
# Open in playwright-cli or browser to visually verify:
# - 3-column layout (sidebar, content, QuickNav)
# - FrameworkCards render correctly
# - CodeBlock/Demo components display code with syntax highlighting
# - All QuickNav links scroll to correct headings
# - Tables render with ApiTable styling
```

## Common Mistakes

- **QuickNav id mismatch** — `id` must match what `slugify()` produces from the heading text. Test: lowercase the heading, replace non-alphanumeric with `-`, trim edges.
- **Missing wrapper div** — The `<div style={{ paddingTop: '1.5rem', paddingBottom: '5rem' }}>` wrapper is required. Without it, spacing breaks.
- **FrameworkCards without matching headings** — The cards link to `#langgraph`, `#crewai`, `#autogen`, `#llamaindex`, `#google-adk`. Headings must produce these exact IDs.
- **Forgetting to close `</div>`** — The wrapper div must close at the end of the MDX file.
- **Using `.tsx` instead of `.mdx`** — Full content pages use `.mdx` (MDX rendering). Stub pages may use `.tsx` but content pages must be `.mdx` to get markdown styling.

Attribution

eformateformat
View sourceSee grades on GitHubMore from eformat →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Clean Code

Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments

304955 votes

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

285172 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

10341 votes
View all in development →