design.system
What the design is: the fingerprint every stylesheet carries, the identity, the type stacks, the theme contract with the pre-paint statement every surface runs, the audit widths, how many tokens of each kind, and every generated file the declaration is projected into.
What the design is: the fingerprint every stylesheet carries, the identity, the type stacks, the theme contract with the pre-paint statement every surface runs, the audit widths, how many tokens of each kind, and every generated file the declaration is projected into.
- query
- behaviorally_verified
- module design
- #design
- #ui
- #introspection
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_design resource majordomus://design |
| HTTP | GET /api/v1/design operationId design.system |
| command line | — |
Schemas
The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.
input · Empty
No input.
No properties: the capability takes no input.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}output · DesignReport
The design system: what it is and where it goes.
| property | type | required | description |
|---|---|---|---|
| design | string | yes | The first twelve digits, as every stylesheet carries them in `--mj-design`. |
| fingerprint | string | yes | SHA-256 of the declaration's canonical form. |
| font | reference | yes | The two type stacks. |
| identity | reference | yes | Who this is. |
| projections | array | yes | Every generated file the declaration is projected into. |
| schema | integer | yes | The format version of the declaration. |
| source | string | yes | Where the declaration lives, repository-relative. |
| tallies | reference | yes | How many of each kind of token. |
| theme | reference | yes | The theme contract. |
| viewports | array | yes | The widths a browser audit measures every page at. |
JSON Schema
{
"$defs": {
"Fonts": {
"additionalProperties": false,
"description": "The two type stacks.",
"properties": {
"mono": {
"description": "The monospace stack.",
"type": "string"
},
"sans": {
"description": "The system stack.",
"type": "string"
}
},
"required": [
"sans",
"mono"
],
"type": "object"
},
"Identity": {
"additionalProperties": false,
"description": "Who this is.",
"properties": {
"logo": {
"description": "The full logo, relative to the design directory.",
"type": "string"
},
"mark": {
"description": "The mark, relative to the design directory.",
"type": "string"
},
"name": {
"description": "The product name every surface shows.",
"type": "string"
},
"social": {
"description": "The social preview image, relative to the design directory.",
"type": "string"
}
},
"required": [
"name",
"mark",
"logo",
"social"
],
"type": "object"
},
"ProjectionView": {
"description": "One generated projection of the design and what it is for.",
"properties": {
"path": {
"description": "Repository-relative path.",
"type": "string"
},
"read_by": {
"description": "What reads it.",
"type": "string"
}
},
"required": [
"path",
"read_by"
],
"type": "object"
},
"ThemeView": {
"description": "The theme contract as a client reads it.",
"properties": {
"bootstrap": {
"description": "The one pre-paint statement every surface runs.",
"type": "string"
},
"class": {
"description": "The class on the root element that means dark.",
"type": "string"
},
"storage_key": {
"description": "The `localStorage` key the person's choice is kept under.",
"type": "string"
}
},
"required": [
"class",
"storage_key",
"bootstrap"
],
"type": "object"
},
"TokenTallies": {
"description": "How many of each kind of token.",
"properties": {
"aliases": {
"description": "Flowbite names declared as synonyms.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"palette": {
"description": "Raw palette entries.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"roles": {
"description": "Semantic roles.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"states": {
"description": "State words filed under a status.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"statuses": {
"description": "Status meanings.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"type_steps": {
"description": "Steps of the type scale.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"palette",
"roles",
"statuses",
"states",
"type_steps",
"aliases"
],
"type": "object"
}
},
"description": "The design system: what it is and where it goes.",
"properties": {
"design": {
"description": "The first twelve digits, as every stylesheet carries them in `--mj-design`.",
"type": "string"
},
"fingerprint": {
"description": "SHA-256 of the declaration's canonical form.",
"type": "string"
},
"font": {
"$ref": "#/$defs/Fonts",
"description": "The two type stacks."
},
"identity": {
"$ref": "#/$defs/Identity",
"description": "Who this is."
},
"projections": {
"description": "Every generated file the declaration is projected into.",
"items": {
"$ref": "#/$defs/ProjectionView"
},
"type": "array"
},
"schema": {
"description": "The format version of the declaration.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"source": {
"description": "Where the declaration lives, repository-relative.",
"type": "string"
},
"tallies": {
"$ref": "#/$defs/TokenTallies",
"description": "How many of each kind of token."
},
"theme": {
"$ref": "#/$defs/ThemeView",
"description": "The theme contract."
},
"viewports": {
"description": "The widths a browser audit measures every page at.",
"items": {
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"type": "array"
}
},
"required": [
"fingerprint",
"design",
"schema",
"source",
"identity",
"font",
"theme",
"viewports",
"tallies",
"projections"
],
"title": "DesignReport",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- disabled — every call runs the handler
Benchmark targets
Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.