Files
markitect-main/markitect/schemas/api-documentation-schema-v1.0.md
tegwick 60d9f7a2c3 feat: implement Phase 4 - Schema Migration
Completed Phase 4 of the schema-of-schemas implementation with successful
migration of all legacy schemas to the new markdown format following the
naming convention.

Migration Script (scripts/migrate_schemas.py - 240 lines):
- Automated schema migration from JSON to markdown format
- Updates version and $id fields to follow conventions
- Generates proper frontmatter metadata
- Dry-run mode for safe testing
- Database cleanup functionality
- Comprehensive progress reporting

Schemas Migrated (2):
- terminology-schema.json → terminology-schema-v1.0.md
  - Fixed missing version field
  - Updated $id from /terminology-v1.json to /terminology/v1.0
  - Validates successfully against metaschema

- api-documentation → api-documentation-schema-v1.0.md
  - Added version: 1.0.0
  - Updated $id to follow /api-documentation/v1.0 format
  - Validates successfully against metaschema

Schemas Deleted (3):
- markdown-manpage (duplicate of manpage-schema-v1.0.md)
- markdown-manpage-schema.json (duplicate of manpage-schema-v1.0.md)
- enhanced-manpage (replaced by manpage-schema-v1.0.md)

CLI Enhancement (markitect/cli.py):
- Updated schema-ingest to support markdown (.md) files
- Auto-detects file type and uses MarkdownSchemaLoader for .md files
- Extracts JSON schema from markdown for database storage
- Maintains backward compatibility with JSON files

Final Schema Registry (4 schemas):
 terminology-schema-v1.0.md - Terminology validation
 api-documentation-schema-v1.0.md - API documentation structure
 manpage-schema-v1.0.md - Unix manual pages
 schema-schema-v1.0.md - Metaschema for validating schemas

All schemas:
- Follow naming convention: {domain}-schema-v{major}.{minor}.md
- Include proper frontmatter with schema-id, version, status
- Validate successfully against schema-schema-v1.0.md metaschema
- Stored in database and ready for use

Progress Tracking:
- Updated TODO.md with Phase 4 completion
- Updated CHANGELOG.md with migration details
- Next: Phase 5 - CLI & Documentation Updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 09:38:43 +01:00

269 lines
7.3 KiB
Markdown

---
description: Schema for API documentation structure and content validation
domain: api-documentation
schema-id: https://markitect.dev/schemas/api-documentation/v1.0
status: stable
version: 1.0.0
---
# API Endpoint Documentation Schema v1.0.0
## Overview
Schema for API endpoint documentation with classification and content control
## Usage
```bash
markitect validate document.md --schema v1.0
```
## Schema Definition
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "API Endpoint Documentation Schema",
"description": "Schema for API endpoint documentation with classification and content control",
"x-markitect-sections": {
"ENDPOINT": {
"classification": "required",
"heading_level": 2,
"position": "after_title",
"content_instruction": "HTTP method and endpoint path (e.g., GET /api/v1/users)",
"min_paragraphs": 1,
"max_paragraphs": 3,
"error_message": "ENDPOINT section must specify the HTTP method and path"
},
"DESCRIPTION": {
"classification": "required",
"heading_level": 2,
"content_instruction": "What this endpoint does and when to use it",
"min_paragraphs": 2,
"error_message": "DESCRIPTION is required to explain endpoint functionality"
},
"AUTHENTICATION": {
"classification": "required",
"heading_level": 2,
"content_instruction": "Authentication requirements (API key, OAuth, etc.)",
"min_paragraphs": 1,
"error_message": "AUTHENTICATION requirements must be documented"
},
"REQUEST PARAMETERS": {
"classification": "recommended",
"heading_level": 2,
"content_instruction": "List all request parameters with types and descriptions",
"alternatives": [
"PARAMETERS",
"REQUEST",
"INPUT"
],
"warning_if_missing": "Documenting request parameters helps API consumers use the endpoint correctly"
},
"RESPONSE": {
"classification": "recommended",
"heading_level": 2,
"content_instruction": "Response format, status codes, and example responses",
"min_code_blocks": 1,
"warning_if_missing": "Response documentation with examples improves API usability"
},
"EXAMPLES": {
"classification": "recommended",
"heading_level": 2,
"content_instruction": "Complete request/response examples",
"min_code_blocks": 2,
"warning_if_missing": "Examples make API documentation significantly more useful"
},
"ERROR CODES": {
"classification": "recommended",
"heading_level": 2,
"content_instruction": "Possible error responses and how to handle them",
"alternatives": [
"ERRORS",
"ERROR HANDLING"
],
"warning_if_missing": "Error documentation helps developers handle failures gracefully"
},
"RATE LIMITING": {
"classification": "optional",
"heading_level": 2,
"content_instruction": "Rate limit information for this endpoint"
},
"CHANGELOG": {
"classification": "optional",
"heading_level": 2,
"content_instruction": "Version history and changes to this endpoint"
},
"SEE ALSO": {
"classification": "optional",
"heading_level": 2,
"content_instruction": "Related endpoints and documentation"
},
"IMPLEMENTATION NOTES": {
"classification": "discouraged",
"heading_level": 2,
"warning_if_missing": "Implementation details should be in developer documentation, not API docs"
},
"INTERNAL API": {
"classification": "improper",
"heading_level": 2,
"error_message": "Internal API endpoints must not be in public documentation"
},
"EXPERIMENTAL": {
"classification": "improper",
"heading_level": 2,
"error_message": "Experimental features must not be in stable API documentation"
}
},
"x-markitect-content-control": {
"endpoint": {
"required_patterns": [
"\\*\\*[A-Z]+\\*\\*",
"`/api/",
"\\*\\*[A-Z]+\\*\\*\\s+`/[^`]+`"
],
"content_quality": {
"min_words": 5,
"max_words": 50,
"readability_target": "technical"
},
"content_instructions": [
"Format: **METHOD** `endpoint_path`",
"Example: **GET** `/api/v1/users/{id}`",
"Use bold for HTTP method",
"Use code formatting for path",
"Include path parameters in curly braces"
]
},
"description": {
"discouraged_patterns": [
"TODO",
"FIXME",
"TBD",
"Coming soon"
],
"forbidden_patterns": [
"password",
"secret",
"api[_-]?key\\s*=",
"token\\s*="
],
"content_quality": {
"min_words": 30,
"max_words": 500,
"readability_target": "technical",
"min_sentences": 2
},
"content_instructions": [
"Explain what the endpoint does",
"Describe the main use case",
"Mention any prerequisites",
"Note any side effects",
"Keep concise but complete"
]
},
"request_parameters": {
"required_patterns": [
"\\*\\*[a-z_]+\\*\\*",
"\\*[A-Za-z]+\\*"
],
"content_instructions": [
"Use bold for parameter names",
"Use italic for parameter types",
"Include: name, type, required/optional, description",
"Use definition list format",
"Specify default values where applicable"
]
},
"response": {
"required_patterns": [
"```json",
"200",
"\\{[^}]*\\}"
],
"content_quality": {
"min_words": 50,
"max_words": 500,
"readability_target": "technical"
},
"content_instructions": [
"Show example JSON response",
"Document all status codes",
"Explain response fields",
"Include success and error examples",
"Use proper JSON formatting in code blocks"
]
},
"examples": {
"required_patterns": [
"```bash",
"curl",
"```json"
],
"content_quality": {
"min_words": 100,
"max_words": 1000,
"readability_target": "general"
},
"content_instructions": [
"Provide complete curl examples",
"Show request headers",
"Include example responses",
"Add explanatory comments",
"Cover common scenarios"
],
"link_validation": {
"check_internal": true,
"check_external": true,
"allow_fragments": true
}
}
},
"type": "object",
"properties": {
"headings": {
"type": "object",
"properties": {
"level_1": {
"type": "array",
"minItems": 1,
"maxItems": 1
},
"level_2": {
"type": "array",
"minItems": 3,
"maxItems": 15
},
"level_3": {
"type": "array",
"minItems": 0,
"maxItems": 30
}
}
},
"paragraphs": {
"type": "array",
"minItems": 8,
"maxItems": 200
},
"code_blocks": {
"type": "array",
"minItems": 3,
"maxItems": 30
},
"emphasis": {
"type": "array",
"minItems": 15,
"maxItems": 200
}
},
"version": "1.0.0",
"$id": "https://markitect.dev/schemas/api-documentation/v1.0"
}
```
## Version History
### v1.0.0
- Initial version