Add Design Pattern Documentation: - Add CopyFirstMigration.md - Documents the copy-first migration principle used in the TestDrive-JSUI capability migration - Add DontRepeatYourself.md - Documents the DRY principle - Add DesignPrincipleSchema.json - JSON schema for design pattern documentation Update Submodule: - Update testdrive-jsui submodule pointer to include Phase 4 documentation (migration completion with legacy file cleanup) Context: These design pattern examples document the principles applied during the successful TestDrive-JSUI migration, which serves as a reference implementation of the copy-first migration pattern. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
135 lines
3.3 KiB
JSON
135 lines
3.3 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"title": "Schema for DesignPrinciples",
|
|
"description": "JSON schema describing the markdown structure of OperationalKnowledge DesignPrinciples",
|
|
"properties": {
|
|
"headings": {
|
|
"type": "object",
|
|
"description": "Document heading structure",
|
|
"properties": {
|
|
"level_1": {
|
|
"type": "array",
|
|
"description": "Headings at level 1",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"level": {
|
|
"type": "integer"
|
|
},
|
|
"position": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"content",
|
|
"level"
|
|
]
|
|
},
|
|
"minItems": 1,
|
|
"maxItems": 1
|
|
},
|
|
"level_2": {
|
|
"type": "array",
|
|
"description": "Headings at level 2",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"level": {
|
|
"type": "integer"
|
|
},
|
|
"position": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"content",
|
|
"level"
|
|
]
|
|
},
|
|
"minItems": 4,
|
|
"maxItems": 12
|
|
},
|
|
"level_3": {
|
|
"type": "array",
|
|
"description": "Headings at level 3",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"level": {
|
|
"type": "integer"
|
|
},
|
|
"position": {
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"content",
|
|
"level"
|
|
]
|
|
},
|
|
"minItems": 0,
|
|
"maxItems": 40
|
|
}
|
|
}
|
|
},
|
|
"paragraphs": {
|
|
"type": "array",
|
|
"description": "Text paragraphs",
|
|
"minItems": 8,
|
|
"maxItems": 120
|
|
},
|
|
"lists": {
|
|
"type": "array",
|
|
"description": "Lists (ordered and unordered)",
|
|
"minItems": 0,
|
|
"maxItems": 20
|
|
},
|
|
"emphasis": {
|
|
"type": "array",
|
|
"description": "Text emphasis (bold, italic)",
|
|
"minItems": 0,
|
|
"maxItems": 120
|
|
},
|
|
"metadata": {
|
|
"type": "object",
|
|
"description": "Document structure metadata",
|
|
"properties": {
|
|
"total_elements": {
|
|
"type": "integer",
|
|
"const": 115
|
|
},
|
|
"structure_types": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"description": "All structural element types found",
|
|
"const": [
|
|
"paragraph_close",
|
|
"heading_close",
|
|
"hr",
|
|
"bullet_list_open",
|
|
"paragraph_open",
|
|
"heading_open",
|
|
"ordered_list_open",
|
|
"ordered_list_close",
|
|
"inline",
|
|
"list_item_close",
|
|
"list_item_open",
|
|
"bullet_list_close"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|