This commit sets up the comprehensive workplan for implementing a
markdown-first schema management system with naming conventions,
versioning, and self-validation capabilities.
## Directory Reorganization
- Renamed `todo/` → `roadmap/` for better organization
- Created `roadmap/schema-of-schemas/` subdirectory
- Moved schema management planning artifacts to dedicated directory
## Planning Artifacts Created
### Workplan & Documentation
- **WORKPLAN.md** (19KB) - Comprehensive 6-phase implementation plan
- **SCHEMA_MANAGEMENT_PROPOSAL.md** - Full analysis with 4 options
- **SCHEMA_MANAGEMENT_SUMMARY.md** - Executive summary
- **README.md** - Quick reference guide
### Example Schema
- **examples/schemas/manpage-schema-v1.md** - Demonstrates markdown format
## Schema Management System Design
### Naming Convention
**Format:** `{domain}-schema-v{major}.{minor}.md`
**Examples:**
- `manpage-schema-v1.0.md`
- `terminology-schema-v1.0.md`
- `api-documentation-schema-v1.0.md`
### Markdown-First Format
Schemas will be markdown files with:
- YAML frontmatter for metadata
- Rich documentation sections
- Embedded JSON schema in code block
- Version history and examples
### Implementation Phases (8-10 days)
**Phase 0:** Planning & Setup ✅ (0.5 days) - COMPLETE
**Phase 1:** Filename Convention (1 day) - NEXT
**Phase 2:** Markdown Loader (2-3 days)
**Phase 3:** Schema-for-Schemas (2 days)
**Phase 4:** Schema Migration (1-2 days)
**Phase 5:** CLI & Documentation (1 day)
**Phase 6:** Testing & Validation (1 day)
### Goals
1. ✅ Establish naming convention
2. ⏳ Implement filename validation
3. ⏳ Create markdown schema loader
4. ⏳ Build schema-for-schemas metaschema
5. ⏳ Migrate 5 existing schemas (remove 2 duplicates)
6. ⏳ Update CLI and documentation
## Updated Tracking
### TODO.md
- Added Schema-of-Schemas as active work item
- Documented Phase 1 tasks and timeline
- Paused capability extraction work
### CHANGELOG.md
- Added schema management system to [Unreleased]
- Documented directory reorganization
- Added "In Progress" section for current work
## Next Steps
Begin Phase 1:
1. Implement schema_naming.py with validation
2. Add unit tests
3. Update CLI schema-ingest command
4. Create naming specification document
## Files Changed
- CHANGELOG.md - Added unreleased schema management features
- TODO.md - Updated active work tracking
- roadmap/ - Reorganized from todo/
- roadmap/schema-of-schemas/ - New planning directory
- examples/schemas/ - Example markdown schema
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4.2 KiB
4.2 KiB
Schema Management: Executive Summary
TL;DR: Implement naming conventions, versioning, and markdown-first schema format to solve current schema management issues.
Problems Identified
- Inconsistent Naming - Mix of
schema.jsonsuffix and no suffix - No Versioning - Can't track schema evolution or maintain multiple versions
- Duplicate Schemas - 3 manpage schemas with similar content
- Format Mismatch - JSON schemas in markdown-centric tool
Recommended Solution
1. Naming Convention (Immediate)
Format: {domain}-schema-v{major}.{minor}.json or .md
Examples:
manpage-schema-v1.0.json
terminology-schema-v1.0.json
api-documentation-schema-v1.0.json
Migration:
markdown-manpage → manpage-schema-v1.0.json
enhanced-manpage → manpage-schema-v2.0.json (breaking changes)
terminology-schema.json → terminology-schema-v1.0.json
2. Markdown-First Format (Short-term)
Proposal: Store schemas as markdown files with embedded JSON
Benefits:
- Aligns with markdown philosophy ✅
- Rich documentation alongside schema ✅
- Version history in same file ✅
- Examples and usage inline ✅
- Lower barrier to entry ✅
Example: See examples/schemas/manpage-schema-v1.md
Format:
# Schema Title v1.0
## Documentation sections...
## Schema Definition
\`\`\`json
{ schema here }
\`\`\`
3. Schema Metadata Standard (Immediate)
Required fields:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://markitect.dev/schemas/{domain}/v{major}",
"version": "1.0.0",
"title": "Human Readable Title",
"description": "Detailed description",
"x-markitect-metadata": {
"domain": "manpage",
"document-types": ["manual-page"],
"created": "2026-01-04",
"example": "examples/manpages/example.md"
}
}
Implementation Phases
Phase 1: Foundation (1-2 days)
- Analyze current state
- Define naming convention spec
- Create schema metadata template
- Rename existing schemas
- Update schema-catalog.yaml
Phase 2: Markdown Format (3-5 days)
- Design markdown schema format
- Implement parser (extract JSON from markdown)
- Convert 1 schema as proof-of-concept
- Test and iterate
- Migrate all schemas
Phase 3: Tooling (2-3 days)
- Update CLI to support .md schemas
- Add schema validation command
- Create migration guide
- Update documentation
Cost-Benefit Analysis
Cost: 6-10 days total effort
Benefits:
- Professional schema management ⭐⭐⭐⭐⭐
- Better discoverability ⭐⭐⭐⭐
- Easier maintenance ⭐⭐⭐⭐⭐
- Markdown alignment ⭐⭐⭐⭐⭐
- Version tracking ⭐⭐⭐⭐⭐
ROI: High - Foundational improvement that benefits all future schema work
Alternative Considered
Alternative: Keep JSON, generate markdown docs automatically
Pros:
- Simpler implementation (2-3 days)
- JSON remains source of truth
- Standard tooling works
Cons:
- Doesn't solve format mismatch
- Documentation generated, not authored
- Two files to manage
Verdict: Markdown-first better aligns with project philosophy
Quick Wins (Today)
- Rename schemas with versioned names (30 minutes)
- Add metadata to existing schemas (1 hour)
- Update catalog with proper versioning (30 minutes)
Questions to Resolve
- File extension:
.mdor.schema.mdfor markdown schemas? - JSON extraction: Real-time or pre-compiled cache?
- Backward compatibility: Support both formats during transition?
- CLI changes:
--schema file.mdor auto-detect format?
Next Steps
- Review this proposal and example (examples/schemas/manpage-schema-v1.md)
- Decide on markdown-first vs generated docs approach
- Prototype parser for markdown schemas
- Migrate one schema as proof-of-concept
- Iterate based on feedback
- Full rollout to all schemas
References
- Full proposal: SCHEMA_MANAGEMENT_PROPOSAL.md
- Example markdown schema: examples/schemas/manpage-schema-v1.md
- Current schema catalog: markitect/schemas/schema-catalog.yaml