The schema captures who contributed, but not how the contribution occurred. Modality is high-signal context for interpretation and policy.
Problem
Different interaction modes (chat edit, inline edit, tab autocomplete, agent action, human typing) are not distinguishable in a standard field.
Proposal
Add optional conversation.kind as an open string, with a recommended baseline vocabulary:
chat
tab_autocomplete
inline_edit
agent_action
human_typing
Note that kind describes the interaction mode, not the contributor type. These are orthogonal dimensions. For example, a human using a chat interface would have kind: "chat" with contributor.type: "human", while a tab-autocomplete suggestion accepted without modification would have kind: "tab_autocomplete" with contributor.type: "ai". This distinction is useful because the same contributor type can produce code through very different interaction patterns, and downstream analysis often needs to tell them apart.
Why This Should Be Added
- Improves interoperability across tools without deep metadata parsing.
- Enables better downstream analysis of contribution patterns.
- Maintains flexibility by keeping values open-ended.
Compatibility
Backward-compatible optional addition.
Scope
This is attribution semantics only. It does not prescribe UI behavior or policy decisions.
The schema captures who contributed, but not how the contribution occurred. Modality is high-signal context for interpretation and policy.
Problem
Different interaction modes (chat edit, inline edit, tab autocomplete, agent action, human typing) are not distinguishable in a standard field.
Proposal
Add optional
conversation.kindas an open string, with a recommended baseline vocabulary:chattab_autocompleteinline_editagent_actionhuman_typingNote that
kinddescribes the interaction mode, not the contributor type. These are orthogonal dimensions. For example, a human using a chat interface would havekind: "chat"withcontributor.type: "human", while a tab-autocomplete suggestion accepted without modification would havekind: "tab_autocomplete"withcontributor.type: "ai". This distinction is useful because the same contributor type can produce code through very different interaction patterns, and downstream analysis often needs to tell them apart.Why This Should Be Added
Compatibility
Backward-compatible optional addition.
Scope
This is attribution semantics only. It does not prescribe UI behavior or policy decisions.