Agent skill

Doc Description Governance

by lynx-family in lynx-family/lynx-website

Audit and optimize frontmatter description fields across documentation pages to keep them concise and token-efficient.

Apache-2.0Auto-check passedMarketing & SEO

Install Doc Description Governance

skills CLI
$ npx skills add lynx-family/lynx-website --skill doc-description-governance -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install lynx-family/lynx-website doc-description-governance --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/lynx-family/lynx-website.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/doc-description-governance .claude/skills/doc-description-governance && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
doc-description-governance
GitHub stars
130
Token cost
~1.7k tokens
SKILL.md length
496 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
Apache-2.0

At a glance

Audit and optimize frontmatter description fields across documentation pages to keep them concise and token-efficient.

  • Works in 5 steps: Audit Current State → Classify Each Overlong Entry → Add Frontmatter Descriptions → …
  • The user wants to add missing descriptions
  • SKILL.md covers Why This Matters, Workflow, Common Pitfalls and Dependencies
  • Calls node and pnpm

What it does

Doc Description Governance is an agent skill from lynx-family/lynx-website. Audit and optimize frontmatter description fields across documentation pages to keep them concise and token-efficient. Use this skill when the user wants to add missing descriptions, trim verbose ones, enforce a token budget on page descriptions, or ensure every doc page has a proper frontmatter description. Also trigger when the user mentions 'description is too long', 'add description frontmatter', 'optimize page descriptions', 'llms.txt is too big', or 'descriptions are eating too many tokens'.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Marketing & SEO, covering AI search optimization and LLM cost and token optimization. The repository describes itself as: Official Website of the Lynx Family. The licence is Apache-2.0.

When your agent uses it

  • The user wants to add missing descriptions
  • Trim verbose ones
  • Enforce a token budget on page descriptions
  • Ensure every doc page has a proper frontmatter description

Example prompts

  • “description is too long”
  • “add description frontmatter”
  • “optimize page descriptions”
  • “/doc-description-governance”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Audit Current State
  2. Classify Each Overlong Entry
  3. Add Frontmatter Descriptions
  4. Build-Time Truncation (Safety Net)
  5. Verification

What it can do on your machine

Read from SKILL.md and the folder at commit f78e8a9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Doc Description Governance loads about 1.7k tokens when it runs. Until then it costs about 133 tokens; SKILL.md has 496 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~133
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from lynx-family/lynx-website at commit f78e8a9, republished under its Apache-2.0 licence (© lynx-family). 496 words, ~1,691 tokens.

Download SKILL.mdSave it as .claude/skills/doc-description-governance/SKILL.md (or your agent's skills folder).
name
doc-description-governance
description
Audit and optimize frontmatter `description` fields across documentation pages to keep them concise and token-efficient. Use this skill when the user wants to add missing descriptions, trim verbose ones, enforce a token budget on page descriptions, or ensure every doc page has a proper frontmatter description. Also trigger when the user mentions 'description is too long', 'add description frontmatter', 'optimize page descriptions', 'llms.txt is too big', or 'descriptions are eating too many tokens'.

Documentation Page Description Governance

This skill helps you audit and optimize frontmatter description fields across documentation pages. Well-governed descriptions keep generated outputs (like llms.txt) compact and meaningful, and also improve SEO and link previews.

Why This Matters

Pages without explicit description frontmatter fall back to their first paragraph — often hundreds of tokens of prose, unresolved MDX variables, JSX tags, or import statements. This bloats any consumer of the description (llms.txt, meta tags, link previews). The goal is to ensure every page has a deliberate, concise description that stays within a token budget (typically 30 tokens as measured by tiktoken gpt-4o).

Workflow

1. Audit Current State

Use the built llms.txt as a detection surface — it exposes every page's effective description in one file. Identify entries exceeding the token budget:

typescript
import { encodingForModel } from 'js-tiktoken';
import fs from 'node:fs/promises';

const enc = encodingForModel('gpt-4o');
const TOKEN_LIMIT = 30;

const llmsTxt = await fs.readFile('doc_build/llms.txt', 'utf-8');
const appendixStart = llmsTxt.indexOf('## 98. Appendix: Links');
const appendixContent = llmsTxt.slice(appendixStart);
const lines = appendixContent.split('\n').filter((l) => l.startsWith('* ['));

for (const line of lines) {
  const match = line.match(/^\* \[([^\]]*)\]\(([^)]+)\): (.+)$/);
  if (!match) continue;
  const [, title, url, desc] = match;
  const tokens = enc.encode(desc).length;
  if (tokens > TOKEN_LIMIT) {
    console.log(`${tokens} tokens: ${url} | ${desc.slice(0, 80)}`);
  }
}

Count tokens with tiktoken, not word count. Word-splitting (split(/\s+/)) severely undercounts Chinese/Japanese text where each character is 1-2 tokens.

2. Classify Each Overlong Entry

For each entry exceeding the budget, determine the fix strategy:

SituationFix
File has no frontmatter descriptionAdd description field to frontmatter
File already has a frontmatter description that's too longDo NOT modify the source — rely on postprocess truncation
Description contains unresolved MDX variables ({someVar['key']})Add a proper description frontmatter to override
Description contains JSX/import leakageAdd a proper description frontmatter to override

The key rule: never modify an existing description that was already in the file. Someone wrote it deliberately. Instead, rely on the build-time truncation safety net to clip it at output time.

3. Add Frontmatter Descriptions

For files that need a new description:

yaml
---
description: "Concise summary of the page's purpose."
---

Guidelines for writing descriptions:

  • Must be under 30 tokens (measured by tiktoken gpt-4o); aim for 15-25 tokens
  • Focus on what the page helps the reader DO, not what it IS
  • No marketing language, no "this page explains..."
  • Place description as the first field if adding to existing frontmatter
  • Insert before any import statements if adding new frontmatter block
Show full SKILL.md (179 more words)Show less
4. Build-Time Truncation (Safety Net)

Add a postprocess step that automatically truncates any description exceeding the token budget. This catches entries from files with long pre-existing descriptions without modifying source files.

typescript
import { encodingForModel } from 'js-tiktoken';

const enc = encodingForModel('gpt-4o');

function truncateLongDescriptions(markdown: string, maxTokens: number): string {
  const ellipsis = '…';
  const ellipsisTokens = enc.encode(ellipsis).length;
  return markdown
    .split('\n')
    .map((line) => {
      const match = line.match(/^(\* \[[^\]]*\]\([^)]+\)): (.+)$/);
      if (!match) return line;
      const [, prefix, desc] = match;
      const tokens = enc.encode(desc);
      if (tokens.length <= maxTokens) return line;
      const truncated = enc.decode(tokens.slice(0, maxTokens - ellipsisTokens));
      return `${prefix}: ${truncated}${ellipsis}`;
    })
    .join('\n');
}

The ellipsis itself costs tokens — always subtract its token count from the budget before slicing.

5. Verification

After building, verify all language variants pass:

bash
node --experimental-transform-types -e "
import { encodingForModel } from 'js-tiktoken';
import fs from 'node:fs/promises';
const enc = encodingForModel('gpt-4o');
const TOKEN_LIMIT = 30;
for (const file of ['doc_build/llms.txt', 'doc_build/zh/llms.txt']) {
  const llms = await fs.readFile(file, 'utf-8');
  const start = llms.indexOf('## 98. Appendix: Links');
  const lines = llms.slice(start).split('\n').filter(l => l.startsWith('* ['));
  let exceeding = 0;
  for (const line of lines) {
    const match = line.match(/^\* \[([^\]]*]\)\(([^)]+\)): (.+)$/);
    if (!match) continue;
    if (enc.encode(match[3]).length > TOKEN_LIMIT) exceeding++;
  }
  console.log(file + ': ' + exceeding + ' exceeding');
}
"

Common Pitfalls

  • Chinese token counting: A single Chinese character can be 1-3 tokens in tiktoken. Never estimate Chinese text by character count alone.
  • Shared pages: Documentation frameworks often mount the same MDX at multiple routes (e.g., /react/start/X, /rspeedy/start/X). Adding frontmatter to the source fixes all routes at once.
  • MDX variable leakage: Pages using {someVar['key']} in their first paragraph will have that raw expression appear in llms.txt because the llms.txt generator doesn't execute JS. Adding a proper description frontmatter overrides this.
  • Ellipsis token cost: … (U+2026) is 1 token in gpt-4o. ... (three dots) is also 1 token. Account for it when truncating.

Dependencies

  • js-tiktoken — for accurate token counting (install with pnpm add -D js-tiktoken)
  • A documentation framework with llms.txt generation (rspress with llms: true, or similar)

© lynx-family, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/doc-description-governance of lynx-family/lynx-website.

Open the folder on GitHubat commit f78e8a9

Compare with similar skills

Doc Description Governance next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Doc Description Governance compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doc Description Governance this skilllynx-family/lynx-website130—~1.7kAutomated safety check: PassApache-2.0
Geo Runonvoyage-ai/voyage-geo-agent384—~1.3kAutomated safety check: NotesMIT
Geo Fundamentalswasp-lang/wasp19k9 repos~861Automated safety check: PassMIT
SEO GeoReScienceLab/opc-skills1.8k4 repos~2.1kAutomated safety check: PassApache-2.0
GEO-First SEO Audit Toolzubair-trabzada/geo-seo-claude11k—~2.8kAutomated safety check: NotesMIT
GEO Monthly Delta Reportzubair-trabzada/geo-seo-claude11k—~2.4kAutomated safety check: NotesMIT

Similar skills

  • Geo Run

    onvoyage-ai/voyage-geo-agent

    Run a full GEO analysis — guides you through setup, brand research, query generation, execution, analysis, and reporting

    384 GitHub stars~1.3k tokensUpdated 7 mo ago
    Marketing & SEOAuto-check: notes
  • Geo Fundamentals

    wasp-lang/wasp

    Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).

    19k GitHub starsUsed in 9 repos~861 tokens
    Marketing & SEOAuto-check passed
  • SEO Geo

    ReScienceLab/opc-skills

    SEO & GEO (Generative Engine Optimization) for websites. An agent skill from ReScienceLab/opc-skills.

    1.8k GitHub starsUsed in 4 repos~2.1k tokens
    Marketing & SEOAuto-check passed
  • GEO-First SEO Audit Tool

    zubair-trabzada/geo-seo-claude

    Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.

    11k GitHub stars~2.8k tokensUpdated yesterday
    Marketing & SEOAuto-check: notes
  • GEO Monthly Delta Report

    zubair-trabzada/geo-seo-claude

    Compares a baseline and a current GEO audit for a client, calculates score changes and action item progress, and writes a monthly progress report.

    11k GitHub stars~2.4k tokensUpdated yesterday
    Marketing & SEOAuto-check: notes
  • SEO Dataforseo

    AgriciDaniel/codex-seo

    Live SEO data via DataForSEO MCP server. An agent skill from AgriciDaniel/codex-seo.

    799 GitHub starsUsed in 2 repos~4.6k tokens
    Marketing & SEOAuto-check passed

More from lynx-family/lynx-website

  • Generate Cdp Spec

    lynx-family/lynx-website

    Generate or check the Lynx DevTool CDP API reference from the authoritative generated manifest using packages/lynx-cdp/generatecdpdocs.py, with mandatory Chinese translation after English generation.

    130 GitHub stars~1.5k tokensUpdated today
    Auto-check passed

Questions about Doc Description Governance

What does Doc Description Governance do?

Audit and optimize frontmatter description fields across documentation pages to keep them concise and token-efficient. Doc Description Governance is an agent skill from lynx-family/lynx-website. Audit and optimize frontmatter description fields across documentation pages to keep them concise and token-efficient.

When should I use Doc Description Governance?

Doc Description Governance fits situations like: the user wants to add missing descriptions; trim verbose ones; enforce a token budget on page descriptions; ensure every doc page has a proper frontmatter description.

How do I install Doc Description Governance in Claude Code?

Run `npx skills add lynx-family/lynx-website --skill doc-description-governance -a claude-code`. Or copy the skill folder (.agents/skills/doc-description-governance in lynx-family/lynx-website) into .claude/skills/doc-description-governance in your project. Claude Code loads it when a task matches its description.

How do I install Doc Description Governance in Codex?

Run `npx skills add lynx-family/lynx-website --skill doc-description-governance -a codex`. Or copy the skill folder (.agents/skills/doc-description-governance in lynx-family/lynx-website) into .agents/skills/doc-description-governance in your project. Codex loads it when a task matches its description.

Can I use Doc Description Governance in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lynx-family/lynx-website --skill doc-description-governance -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doc-description-governance, .gemini/skills/doc-description-governance, .github/skills/doc-description-governance and .opencode/skills/doc-description-governance in your project.

What does Doc Description Governance need to run?

Going by SKILL.md and its folder, Doc Description Governance needs the command-line tools its instructions call (node and pnpm).

Does Doc Description Governance access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Doc Description Governance safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Doc Description Governance use?

Doc Description Governance is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Doc Description Governance use?

About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Doc Description Governance?

Skills that share tags, products or a category with Doc Description Governance: Geo Run (onvoyage-ai/voyage-geo-agent, 384 stars), Geo Fundamentals (wasp-lang/wasp, 19k stars), SEO Geo (ReScienceLab/opc-skills, 1.8k stars) and GEO-First SEO Audit Tool (zubair-trabzada/geo-seo-claude, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Doc Description Governance?

lynx-family (a GitHub organization) maintains it in lynx-family/lynx-website, which has 130 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 10, 2026.

Source: lynx-family/lynx-website on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.