← Files Soulware by Honorary HumanARCHIVED FILE
schemas/soul-kit.schema.json
5.98 KB · Oct 2, 2026 · 00:36 UTC
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Soulware Soul Kit",
"description": "Version 1 portable personality exchange format. UTF-8 JSON, maximum 262144 bytes. Duplicate object keys are invalid. Content is writing guidance, never executable code or additional authorization.",
"type": "object",
"additionalProperties": false,
"required": [
"format",
"format_version",
"id",
"name",
"version",
"summary",
"scope",
"voice",
"behavior",
"adaptations",
"examples",
"checks"
],
"properties": {
"format": {
"const": "soulware.soul-kit"
},
"format_version": {
"const": 1,
"type": "integer"
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 48,
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"version": {
"type": "string",
"pattern": "^[0-9]{1,4}\\.[0-9]{1,4}\\.[0-9]{1,4}$"
},
"summary": {
"type": "string",
"minLength": 1,
"maxLength": 400,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"scope": {
"enum": [
"conversation",
"writing",
"both"
]
},
"voice": {
"type": "object",
"additionalProperties": false,
"required": [
"core",
"traits",
"style_rules",
"avoid"
],
"properties": {
"core": {
"type": "string",
"minLength": 1,
"maxLength": 800,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"traits": {
"type": "array",
"minItems": 3,
"maxItems": 6,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
}
},
"style_rules": {
"type": "array",
"minItems": 3,
"maxItems": 12,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 400,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
}
},
"avoid": {
"type": "array",
"minItems": 0,
"maxItems": 8,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
}
}
}
},
"behavior": {
"type": "object",
"additionalProperties": false,
"required": [
"explain",
"disagree",
"uncertainty",
"mistakes",
"progress"
],
"properties": {
"explain": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"disagree": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"uncertainty": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"mistakes": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"progress": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
}
}
},
"adaptations": {
"type": "object",
"additionalProperties": false,
"required": [
"everyday",
"focused",
"sensitive",
"writing"
],
"properties": {
"everyday": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"focused": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"sensitive": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"writing": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
}
}
},
"examples": {
"type": "array",
"minItems": 3,
"maxItems": 8,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"situation",
"user",
"assistant",
"note"
],
"properties": {
"situation": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"user": {
"type": "string",
"minLength": 1,
"maxLength": 800,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"assistant": {
"type": "string",
"minLength": 1,
"maxLength": 1800,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 400,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
}
}
}
},
"checks": {
"type": "array",
"minItems": 3,
"maxItems": 8,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"pattern": "^[^\\u0000-\\u0008\\u000b-\\u001f\\u007f]*$"
}
}
}
}
SHA-256: 65de8ec207dc96b1939ad6bc99982c761bb038aec9778e14dde29e6d13089e64