MSP-1 Specification
role
The role term identifies the function, responsibility, or semantic position an entity has in relation to an MSP-1 resource, declaration, contribution, review, revision, or governance context.
1. Purpose
The role term provides a consistent way to describe how people, organizations, and systems participate in authorship, review, contribution, maintenance, publication, governance, or technical operation.
Role metadata helps distinguish functional participation from entity classification, authorship, review responsibility, authority, and trust context. It informs responsibility and participation but does not by itself establish trust, authority, correctness, or reliability.
2. Definition
A role declaration identifies the function or responsibility an entity has in a specific context.
MSP-1 v1.0.1 allows role as either a string or a structured object. The string form is preferred when role appears as an embedded field inside author, reviewer, contributor, provenance, revision, or authority metadata. The object form is available for standalone structured role metadata.
3. Accepted forms
String form
The string form should be used when a concise role label is sufficient.
{
"role": "maintainer"
}
Object form
The object form should be used when role metadata needs category, scope, entity type, authority level, or explanatory context.
{
"role": {
"name": "ai-partner",
"category": "technical",
"entityType": "System",
"scope": "content structure and analysis",
"description": "AI system contributing structural, analytical, or generative support."
}
}
4. Structured fields
- name — required. Human-readable role label.
- category — optional. High-level category describing the nature of the role.
- entityType — optional. Type of entity that normally performs this role.
- scope — optional. Description of what this role applies to.
- description — optional. Detailed explanation of the responsibilities and expectations of this role.
- authorityLevel — optional. Relative level of authority or decision power associated with this role.
- delegable — optional. Indicates whether this role's responsibilities can be delegated to another entity.
- notes — optional. Notes about nuances, constraints, or context for this role.
5. Usage guidance
- Role declarations should accurately reflect actual functional participation.
- Role labels should be used consistently across an implementation.
- Role labels should be human-readable and clear to both humans and agents.
- Role should be interpreted in relation to the entity and resource where it appears.
- Role should not be treated as a trust guarantee, ranking signal, authority claim, or reliability signal by itself.
- Role should not be confused with
type; role describes function, while type classifies what kind of thing something is.
6. Examples
String role:
{
"role": "maintainer"
}
Structured role:
{
"role": {
"name": "ai-partner",
"category": "technical",
"entityType": "System",
"scope": "content structure and analysis",
"description": "AI system contributing structural, analytical, or generative support."
}
}
Role in provenance contributor:
{
"provenance": {
"type": [
"original",
"ai-assisted"
],
"contributors": [
{
"id": "mark-johnson",
"role": "author"
},
{
"id": "chatgpt-jdk",
"role": "ai-partner"
}
]
}
}
7. Relationship to related MSP-1 terms
- author identifies creation or origination responsibility;
rolemay clarify the author's function. - reviewer identifies review responsibility;
rolemay clarify the kind of review performed. - provenance may include role labels for contributors involved in origin, creation, transformation, or review context.
- revision may use role metadata to identify who performed or supported a lifecycle change.
- authority may use role metadata to clarify stewardship, ownership, publishing, or operational responsibility.
- trust is a separate interpretive signal and should not be inferred from role alone.
- type classifies what something is;
roledescribes what function it performs.
8. Deprecated compatibility note
The deprecated compliance term should not be emitted in new MSP-1 v1.0.1 declarations. Legacy role category values that refer to compliance should receive advisory compatibility handling rather than being treated as active role vocabulary.
9. Validation guidance
When role appears as an embedded field, a non-empty string role label should be valid. When role is declared as a standalone structured term, object form with name should be valid.
Validators should flag empty, misleading, conflicting, or unsupported role structures as non-ideal clarity conditions. If an object uses role instead of name as the label field, validators may issue an advisory compatibility warning during transition.