Skip to content
reaatechREAATECH

@reaatech/agents-markdown-cli

npm v1.0.0

Provides a CLI and a set of utility functions for linting, validating, scaffolding, and formatting `AGENTS.md` and `SKILL.md` files. It supports recursive directory traversal, multiple output formats, and CI-friendly exit codes for automated workflows.

@reaatech/agents-markdown-cli

npm version License: MIT CI

Status: Pre-1.0 — APIs may change in minor versions. Pin to a specific version in production.

Command-line interface for linting, validating, scaffolding, and formatting AGENTS.md and SKILL.md files. Built on Commander with colorized output, JSON/HTML/Markdown reporting, and CI-friendly exit codes.

Installation

terminal
npm install -g @reaatech/agents-markdown-cli
# or
pnpm add -g @reaatech/agents-markdown-cli

Feature Overview

  • Five subcommandslint, validate, scaffold, format, examples
  • Multi-format output — Console, JSON, HTML, and Markdown reporters
  • CI/CD ready — Structured exit codes (0 = pass, 1 = errors, 2 = warnings, 3 = execution error)
  • Directory traversal — Lint or validate entire agent directories recursively
  • Auto-fix — Format command with --fix and --dry-run modes
  • Example gallery — List, show, and copy example agent and skill files
  • Observability — All operations emit structured logs and OTel metrics

Quick Start

terminal
# Lint a single file
agents-md-kit lint ./AGENTS.md
 
# Lint a directory, output JSON
agents-md-kit lint ./agents/ --format json --output lint-results.json
 
# Validate in strict mode
agents-md-kit validate ./AGENTS.md --strict
 
# Scaffold a new MCP server agent
agents-md-kit scaffold \
  --agent-id my-mcp-server \
  --display-name "My MCP Server" \
  --agent-type mcp \
  --output-dir ./my-agent/
 
# Auto-fix formatting (dry-run first)
agents-md-kit format ./agents/ --fix --dry-run
agents-md-kit format ./agents/ --fix
 
# List available examples
agents-md-kit examples
agents-md-kit examples show mcp-server

API Reference

Library Usage

The CLI also exports utility functions for programmatic use:

typescript
import {
  lintFile,
  lintDirectory,
  validateFile,
  validateDirectory,
  parseFile,
  scaffoldAgent,
  applyFixesToFile,
  findMarkdownFiles,
  filterLintResult,
  pathIsDirectory,
} from "@reaatech/agents-markdown-cli";

File Operations

FunctionSignatureDescription
parseFile(filePath: string) => Promise<Document>Parse a file into a document
lintFile(filePath: string) => Promise<LintResult>Lint a single file
lintDirectory(dirPath: string) => Promise<LintResult[]>Lint all markdown files in a directory
validateFile(filePath: string, strict?: boolean) => Promise<ValidationResult>Validate a single file
validateDirectory(dirPath: string, strict?: boolean) => Promise<ValidationResult[]>Validate all markdown files in a directory
scaffoldAgent(config: ScaffoldConfig, dryRun?: boolean) => GenerateResultGenerate agent files
applyFixesToFile(filePath: string, ruleIds: string[]) => Promise<{original, fixed}>Apply auto-fixes to a file
findMarkdownFiles(dirPath: string) => Promise<string[]>Recursive markdown file discovery
filterLintResult(result: LintResult, minSeverity: Severity) => LintResultFilter findings by severity threshold
pathIsDirectory(path: string) => Promise<boolean>Check if a path is a directory

Exit Codes

CodeMeaning
0All checks passed (no errors, no warnings above threshold)
1Validation errors found
2Lint warnings found (with --fail-on warning)
3Execution error (file not found, parse error, internal failure)

CLI Options

lint

OptionTypeDescription
--formatconsole | json | html | markdownOutput format (default: console)
--outputstringWrite output to file
--fail-onerror | warning | infoMinimum severity to fail on (default: error)

validate

OptionTypeDescription
--strictbooleanFail on warnings in addition to errors
--formatconsole | json | markdownOutput format
--outputstringWrite output to file

scaffold

OptionTypeRequiredDescription
--agent-idstringYesAgent identifier
--display-namestringYesHuman-readable name
--agent-typemcp | orchestrator | classifier | router | evaluatorYesAgent type
--descriptionstringNoAgent description
--versionstringNoVersion string (default: 1.0.0)
--output-dirstringYesOutput directory
--overwritebooleanNoOverwrite existing files
--skillsstringNoComma-separated skill IDs

format

OptionTypeDescription
--fixbooleanApply fixes (default: off, dry-run only)
--dry-runbooleanPreview fixes without writing
--rulesstringComma-separated rule IDs to fix (default: all fixable)

CI/CD Integration

yaml
# .github/workflows/agents-md-lint.yml
- name: Lint agent files
  run: |
    pnpm add -g @reaatech/agents-markdown-cli
    agents-md-kit lint ./agents/ --format json --output lint-results.json
 
- name: Validate schema
  run: agents-md-kit validate ./agents/ --strict

License

MIT