Config schema quality
How well Drupal contrib modules describe their configuration for an agent: does the
module's own config have a schema, do the schema labels say more than the key name, do settings
carry validation constraints, and how often is validation switched off with type: ignore.
One row per project, newest documented branch.
Labels and descriptions
What text each schema element carries. The only official text key in config schema
is label. A description: key is unofficial: core ignores it, but copies it
onto the data definition, where getDescription() returns it, so it is where longer help
can live.
Descriptions, read by a model
Each unique label/description was read and judged against one question: could an agent use this as a tool parameter description, knowing only the key path and type? Good = usable as-is; weak = leaves the agent guessing (units, allowed values, format, effect); bad = no usable information; missing = no text at all.
What the agent-ready share means
A project's agent-ready share is its good elements divided by all of its schema elements (every setting, mapping and sequence). Weak, bad and missing all count against it.
0% agent-ready: no element can be used as-is.
- Labels are missing, or only repeat the key:
mode→ "Mode",settings→ "Settings". - Or the text is generic, a placeholder, UI wording ("Check this box to enable"), copied from another setting, or wrong.
- Or it is helpful but leaves out something the agent needs to set the value: units, format, allowed values, what a code or true/false does.
100% agent-ready: every element is usable as-is.
- The key path, type and text alone tell an agent what the value means and how to set it correctly, with no form, help text or source code.
- Where it matters, the text gives units ("Banner height in pixels"), the format (hex with or
without
#, comma-separated), the allowed values and what each code means, what true/false does, and what empty or 0 means. - Containers say what they hold, and each config object or plugin says what it is.
- Self-explanatory fields (
uuid,langcode, an entity'sid,label,weight,status) count with a short label such as "ID".
Agent-ready share per project
Popular modules with weak descriptions
Most-installed projects where fewer than half the elements are agent-ready, with examples.
Distributions
Projects per score band. The last band is exactly 100%. Ratios are left out where there is nothing to measure (e.g. no owned config).
By popularity
Mean score per popularity tier (Drupal.org D11 install rank). Unranked projects count in the long tail.
Constraints in use
Explicit constraint occurrences across all schemas (FullyValidatable excluded: it is a marker).
Most type: ignore
Elements that opt out of schema validation, top 15 projects.
Popular modules with schema gaps
The 40 most-installed projects whose own config is not fully covered by a schema. Agent-usable here is the quick word check, not the model's reading: the share of labels that add at least one word beyond the key name.