AgentSkillsCN

Frontmatter Validation

分析Markdown文件,确保其符合Token预算要求

SKILL.md
--- frontmatter
skill_name: frontmatter-validation
skill_category: documentation
description: Validate and fix YAML frontmatter in markdown documentation
allowed_tools: [Read, Edit, Glob, Grep]
token_estimate: 950
version: 1.0
last_updated: 2025-12-21
owner: Claude Copilot
status: active
tags: [frontmatter, yaml, documentation, validation, metadata, shared-docs]
related_skills: [token-budget-check, link-validation]
trigger_files: ["*.md", "**\/SKILL.md"]
trigger_keywords: [frontmatter, yaml, metadata, validation, headers]

Frontmatter Validation

Validate and fix YAML frontmatter metadata in markdown documentation files.

Purpose

Frontmatter enables efficient AI navigation of documentation. This skill ensures all files have correct, complete metadata for their document type.

Frontmatter Schemas by Document Type

Tier 1: Skills (SKILL.md)

yaml
---
skill_name: forces-analysis          # required, kebab-case
skill_category: analysis             # required: analysis, engineering, facilitation, strategy
description: One-line description    # required, max 100 chars
allowed_tools: [Read, Write, Edit]   # required, array
token_estimate: 1850                 # required, integer
version: 1.2                         # required, semver
last_updated: 2025-01-15             # required, ISO date
owner: Service Design Team           # required
status: active                       # required: active, deprecated, draft
tags: [forces, organization]         # required, array
related_skills: [moments-mapping]    # optional, array
methodology: path/to/methodology.md  # optional, relative path
---

Tier 2: Product Documentation

yaml
---
product: Insights Copilot            # required
status: active                       # required: active, beta, deprecated
last_updated: 2025-01-15             # required, ISO date
owner: Platform Team                 # required
token_estimate: 650                  # required, integer
doc_type: architecture               # required: overview, architecture, api, integration, security
source_of_truth: ../repo/docs/...    # optional, path to canonical doc
dependencies: [product-a, product-b] # optional, array
summary: Brief description           # optional, 1-2 sentences
key_entities: [Force, Pattern]       # optional, domain entities
integration_endpoints: [POST /api/x] # optional, for API docs
---

Tier 3: Operational Documentation

yaml
---
title: Documentation Strategy Guide  # required
doc_type: guide                       # required: guide, standard, reference, runbook
category: operations                  # required: operations, security, development
last_updated: 2025-01-15              # required, ISO date
version: 2.1                          # optional
status: active                        # required: active, deprecated, draft
primary_audience: [developers]        # optional, array
required_reading: false               # optional, boolean
token_estimate: 2500                  # required, integer
replaces: _archive/old-doc.md         # optional, path to replaced doc
related: [other-doc.md]               # optional, array
---

Procedure

1. Identify Target Files

bash
find . -name "*.md" -type f -not -path "./_archive/*"

2. Detect Document Type

Infer from path and filename:

PatternDocument Type
*/SKILL.mdTier 1: Skill
02-products/*Tier 2: Product
03-ai-enabling/03-operations/*Tier 3: Operational
*/00-overview.mdProduct overview
*-profile.md or 02-profiles/*Agent profile

3. Extract Existing Frontmatter

Frontmatter is YAML between --- markers at file start:

bash
sed -n '/^---$/,/^---$/p' file.md | head -n -1 | tail -n +2

4. Validate Against Schema

Check for:

CheckSeverityDescription
Required fields missingERRORMust be present
Wrong typeERRORe.g., string instead of array
Invalid valueERRORe.g., status: "live" not in enum
Missing token_estimateWARNINGShould be calculated and added
Stale last_updatedWARNINGOlder than file modification
Broken path referenceWARNINGsource_of_truth doesn't exist

5. Auto-Fix Where Possible

Missing FieldAuto-Fix Strategy
token_estimateCalculate from word count × 1.4
last_updatedUse current date
statusDefault to "active"
skill_nameDerive from directory name
doc_typeInfer from path/filename

6. Generate Missing Frontmatter

For files without frontmatter, generate based on type:

yaml
---
title: [Derived from H1 or filename]
doc_type: [Inferred from path]
last_updated: 2025-12-21
status: active
token_estimate: [Calculated]
---

Output Format

markdown
## Frontmatter Validation Report

### Summary
- Files scanned: N
- Valid: N
- Errors: N
- Warnings: N
- Fixed: N

### Errors (Must Fix)

| File | Issue | Field | Details |
|------|-------|-------|---------|
| skills/x/SKILL.md | Missing required | skill_name | Add skill name |
| products/y.md | Invalid value | status | "live" not valid, use "active" |

### Warnings

| File | Issue | Field | Suggestion |
|------|-------|-------|------------|
| docs/guide.md | Missing | token_estimate | Add: 1,250 (calculated) |
| docs/api.md | Stale | last_updated | Update to current date |

### Auto-Fixes Applied

| File | Field | Old Value | New Value |
|------|-------|-----------|-----------|
| docs/setup.md | token_estimate | (missing) | 890 |
| docs/setup.md | last_updated | 2024-06-01 | 2025-12-21 |

Validation Rules

Field Value Rules

FieldValid Values
statusactive, deprecated, draft, beta
skill_categoryanalysis, engineering, facilitation, strategy, documentation
doc_typeoverview, architecture, api, integration, security, guide, standard, reference, runbook
allowed_toolsRead, Write, Edit, Bash, Glob, Grep, WebFetch, WebSearch

Path Validation

For path fields (source_of_truth, methodology, replaces, related):

  • Resolve relative to file location
  • Check target exists
  • Warn if external to repository

Token Estimate Accuracy

Compare token_estimate to actual:

  • Within 10%: OK
  • 10-25% off: WARNING
  • 25% off: ERROR (likely stale)