{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "title": "Markdown Manpage Schema", "description": "JSON schema defining the structure of Unix-style manual pages written in Markdown. Compatible with man(1) section format and conventions.", "x-markitect-sections": { "SYNOPSIS": { "classification": "required", "heading_level": 2, "position": "after_title", "content_instruction": "Brief command syntax showing options and arguments in standard Unix format", "min_paragraphs": 1, "max_paragraphs": 5, "error_message": "SYNOPSIS section is mandatory for all Unix manual pages" }, "DESCRIPTION": { "classification": "required", "heading_level": 2, "content_instruction": "Detailed explanation of the command's purpose and functionality", "min_paragraphs": 2, "error_message": "DESCRIPTION section is mandatory for all Unix manual pages" }, "OPTIONS": { "classification": "recommended", "heading_level": 2, "content_instruction": "Command-line options and flags with descriptions", "alternatives": ["GLOBAL OPTIONS", "COMMAND OPTIONS", "FLAGS"], "warning_if_missing": "Documenting command options improves usability" }, "EXAMPLES": { "classification": "recommended", "heading_level": 2, "content_instruction": "Practical usage examples demonstrating common use cases", "min_code_blocks": 2, "warning_if_missing": "Examples significantly improve manpage usability and comprehension" }, "SEE ALSO": { "classification": "recommended", "heading_level": 2, "content_instruction": "Related commands, configuration files, and documentation references", "warning_if_missing": "Cross-references help users discover related functionality" }, "COPYRIGHT": { "classification": "recommended", "heading_level": 2, "content_instruction": "Copyright statement and license information", "warning_if_missing": "License information should be documented for clarity" }, "COMMANDS": { "classification": "optional", "heading_level": 2, "content_instruction": "Subcommands and their brief descriptions" }, "CONFIGURATION": { "classification": "optional", "heading_level": 2, "content_instruction": "Configuration file format and options" }, "FILES": { "classification": "optional", "heading_level": 2, "content_instruction": "Important files used by the command with their purposes" }, "EXIT STATUS": { "classification": "optional", "heading_level": 2, "content_instruction": "Exit codes and their meanings" }, "ENVIRONMENT": { "classification": "optional", "heading_level": 2, "content_instruction": "Environment variables used or set by the command" }, "BUGS": { "classification": "optional", "heading_level": 2, "content_instruction": "Known issues and bug reporting instructions" }, "AUTHORS": { "classification": "optional", "heading_level": 2, "content_instruction": "List of contributors and maintainers" } }, "x-markitect-content-control": { "synopsis": { "required_patterns": [ "\\*\\*[a-z][a-z0-9-]*\\*\\*", "\\[.*\\]" ], "discouraged_patterns": [ "TODO", "FIXME" ], "content_quality": { "min_words": 5, "max_words": 150, "readability_target": "technical" }, "content_instructions": [ "Show command name in bold: **command**", "Use brackets [] for optional arguments", "Use italic *ARG* for required arguments", "Keep synopsis concise (1-5 lines)", "Follow man(1) synopsis conventions" ] }, "description": { "discouraged_patterns": [ "TODO", "FIXME", "\\bWIP\\b", "TBD" ], "forbidden_patterns": [ "password\\s*=\\s*[\"'].*[\"']", "api[_-]?key\\s*=\\s*[\"'].*[\"']" ], "content_quality": { "min_words": 50, "max_words": 1000, "readability_target": "technical", "min_sentences": 3 }, "content_instructions": [ "Explain what the command does", "Describe the primary purpose", "Mention key features and capabilities", "Note any prerequisites or dependencies", "Keep language clear and technical" ] }, "examples": { "required_patterns": [ "```", "#" ], "content_quality": { "min_words": 50, "max_words": 2000, "readability_target": "general" }, "content_instructions": [ "Use bash code blocks with syntax highlighting", "Include comments explaining each example", "Start with simple examples, progress to complex", "Show actual output when helpful", "Cover the most common use cases" ] } }, "properties": { "headings": { "type": "object", "description": "Document heading structure following Unix manpage conventions", "properties": { "level_1": { "type": "array", "description": "Title heading: command(section) - brief description", "items": { "type": "object", "properties": { "content": { "type": "string", "pattern": "^[a-z0-9-]+\\([0-9]\\) - .+", "description": "Must follow format: command(section) - description" }, "level": { "type": "integer", "const": 1 } }, "required": ["content", "level"] }, "minItems": 1, "maxItems": 1 }, "level_2": { "type": "array", "description": "Main section headings (SYNOPSIS, DESCRIPTION, etc.)", "items": { "type": "object", "properties": { "content": { "type": "string", "description": "Section name in UPPERCASE" }, "level": { "type": "integer", "const": 2 } }, "required": ["content", "level"] }, "minItems": 3, "maxItems": 30 }, "level_3": { "type": "array", "description": "Subsection headings (optional, for grouping commands or options)", "items": { "type": "object", "properties": { "content": { "type": "string" }, "level": { "type": "integer", "const": 3 } }, "required": ["content", "level"] }, "minItems": 0, "maxItems": 50 } }, "required": ["level_1", "level_2"] }, "paragraphs": { "type": "array", "description": "Text paragraphs containing descriptions and explanations", "minItems": 5, "maxItems": 500 }, "lists": { "type": "array", "description": "Lists for options, examples, or structured information", "minItems": 0, "maxItems": 100 }, "code_blocks": { "type": "array", "description": "Code examples and command demonstrations", "minItems": 1, "maxItems": 50 }, "emphasis": { "type": "array", "description": "Bold and italic emphasis for commands, options, and arguments", "minItems": 10, "maxItems": 500 } }, "required": ["headings", "paragraphs", "code_blocks", "emphasis"] }