genschema CLI¶
Generate JSON Schema files from Go type definitions.
Installation¶
Usage¶
Options¶
| Flag | Description | Default |
|---|---|---|
-o, --output |
Output directory | ./schema |
-f, --format |
Schema format (json, yaml) | json |
--all |
Generate all schemas | true |
--v2mom |
Generate V2MOM schema only | false |
--okr |
Generate OKR schema only | false |
--dmaic |
Generate DMAIC schema only | false |
Examples¶
Generate All Schemas¶
genschema
# Generated schema/v2mom.schema.json
# Generated schema/okr.schema.json
# Generated schema/dmaic.schema.json
Generate Specific Schema¶
Custom Output Directory¶
genschema -o ./my-schemas
# Generated my-schemas/v2mom.schema.json
# Generated my-schemas/okr.schema.json
# Generated my-schemas/dmaic.schema.json
Generated Files¶
| File | Description |
|---|---|
v2mom.schema.json |
V2MOM document schema |
okr.schema.json |
OKR document schema |
dmaic.schema.json |
DMAIC document schema |
Schema Features¶
Generated schemas include:
- Type definitions for all document structures
- Required field validation
- Enum constraints for known values (phases, status, etc.)
- Pattern validation for IDs
- Format validation for dates
Using Generated Schemas¶
VS Code Validation¶
Add to your JSON file:
Programmatic Validation¶
import (
"github.com/grokify/structured-goals/schema"
"github.com/xeipuuv/gojsonschema"
)
schemaLoader := gojsonschema.NewStringLoader(schema.DMAICJSONString())
docLoader := gojsonschema.NewReferenceLoader("file:///path/to/doc.json")
result, err := gojsonschema.Validate(schemaLoader, docLoader)