docs: add semantic validation guide to schema management
Adds comprehensive documentation for semantic document validation: New Section: Document Validation (Semantic) - Explains structural vs semantic validation - Lists what is validated (sections, patterns, quality metrics) - Shows validation output format - Provides common validation scenarios with examples Content: - How to validate documents against schemas - Section classification enforcement (required, recommended, etc.) - Content pattern matching (required, forbidden, discouraged) - Quality metrics (word counts, sentence counts) - Usage examples with --semantic, --strict flags - Error and warning examples Location: docs/SCHEMA_MANAGEMENT_GUIDE.md (after Schema Validation section) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -162,6 +162,115 @@ Results:
|
|||||||
Summary: 4 valid, 0 failed
|
Summary: 4 valid, 0 failed
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Document Validation (Semantic)
|
||||||
|
|
||||||
|
### Validate Documents Against Schemas
|
||||||
|
|
||||||
|
Beyond validating schema structure, MarkiTect can validate actual markdown documents against schemas, checking both structural (AST) and semantic (x-markitect extensions) aspects.
|
||||||
|
|
||||||
|
**Validate a document:**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Full validation (structural + semantic)
|
||||||
|
markitect validate my-document.md --schema manpage-schema-v1.0.md
|
||||||
|
|
||||||
|
# Only structural validation (classic mode)
|
||||||
|
markitect validate my-document.md --schema schema.json --no-semantic
|
||||||
|
|
||||||
|
# Strict mode (warnings become errors)
|
||||||
|
markitect validate my-document.md --schema manpage-schema-v1.0.md --strict
|
||||||
|
```
|
||||||
|
|
||||||
|
### What is Validated
|
||||||
|
|
||||||
|
**Structural Validation** (always enabled):
|
||||||
|
- Document AST structure matches JSON Schema properties
|
||||||
|
- Heading counts, paragraph counts, code block counts
|
||||||
|
- Element types and nesting
|
||||||
|
|
||||||
|
**Semantic Validation** (enabled by default with --semantic):
|
||||||
|
- **Section Classifications**: Checks that documents have required sections, don't have improper sections
|
||||||
|
- REQUIRED sections must be present (ERROR if missing)
|
||||||
|
- RECOMMENDED sections should be present (WARNING if missing)
|
||||||
|
- IMPROPER sections must not be present (ERROR if found)
|
||||||
|
- DISCOURAGED sections should not be present (WARNING if found)
|
||||||
|
- OPTIONAL sections may or may not be present (no check)
|
||||||
|
- **Content Patterns**: Validates content matches regex patterns
|
||||||
|
- `required_patterns`: Content must match (ERROR if missing)
|
||||||
|
- `forbidden_patterns`: Content must not match (ERROR if found)
|
||||||
|
- `discouraged_patterns`: Content should not match (WARNING if found)
|
||||||
|
- **Quality Metrics**: Checks word counts, sentence counts
|
||||||
|
- `min_words`, `max_words`: Word count requirements (WARNING)
|
||||||
|
- `min_sentences`: Minimum sentence count (WARNING)
|
||||||
|
|
||||||
|
### Validation Output
|
||||||
|
|
||||||
|
```
|
||||||
|
Validation result: VALID
|
||||||
|
File: my-command.1.md
|
||||||
|
Schema: schema file: manpage-schema-v1.0.md
|
||||||
|
✅ Document structure matches schema requirements
|
||||||
|
|
||||||
|
============================================================
|
||||||
|
Semantic Validation Results:
|
||||||
|
============================================================
|
||||||
|
Section Validation:
|
||||||
|
✅ SYNOPSIS - Present (required)
|
||||||
|
✅ DESCRIPTION - Present (required)
|
||||||
|
✅ EXAMPLES - Present (recommended)
|
||||||
|
|
||||||
|
Content Validation:
|
||||||
|
✅ All content requirements met
|
||||||
|
|
||||||
|
Summary:
|
||||||
|
Sections checked: 3
|
||||||
|
Sections found: 5
|
||||||
|
Errors: 0
|
||||||
|
Warnings: 0
|
||||||
|
Status: PASSED ✅
|
||||||
|
```
|
||||||
|
|
||||||
|
### Common Validation Scenarios
|
||||||
|
|
||||||
|
**Example 1: Missing Required Section**
|
||||||
|
```bash
|
||||||
|
$ markitect validate doc.md --schema manpage-schema-v1.0.md
|
||||||
|
❌ Document validation failed
|
||||||
|
|
||||||
|
Section Validation:
|
||||||
|
❌ SYNOPSIS - SYNOPSIS section is mandatory
|
||||||
|
✅ DESCRIPTION - Present (required)
|
||||||
|
|
||||||
|
Errors: 1
|
||||||
|
Status: FAILED ❌
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example 2: Forbidden Pattern Found**
|
||||||
|
```bash
|
||||||
|
$ markitect validate doc.md --schema manpage-schema-v1.0.md
|
||||||
|
|
||||||
|
Content Validation:
|
||||||
|
❌ SYNOPSIS - Forbidden pattern found: 'TODO'
|
||||||
|
|
||||||
|
Errors: 1
|
||||||
|
Status: FAILED ❌
|
||||||
|
```
|
||||||
|
|
||||||
|
**Example 3: Content Too Short (Warning)**
|
||||||
|
```bash
|
||||||
|
$ markitect validate doc.md --schema manpage-schema-v1.0.md
|
||||||
|
|
||||||
|
Content Validation:
|
||||||
|
⚠️ DESCRIPTION - Content too short (25 words, minimum 50)
|
||||||
|
|
||||||
|
Warnings: 1
|
||||||
|
Status: PASSED ✅
|
||||||
|
|
||||||
|
# With --strict flag, this would fail:
|
||||||
|
$ markitect validate doc.md --schema manpage-schema-v1.0.md --strict
|
||||||
|
Status: FAILED ❌ (warnings treated as errors)
|
||||||
|
```
|
||||||
|
|
||||||
## Schema Naming Conventions
|
## Schema Naming Conventions
|
||||||
|
|
||||||
All schema filenames must follow this pattern:
|
All schema filenames must follow this pattern:
|
||||||
|
|||||||
Reference in New Issue
Block a user