v1.0 · CC0 public domain

The ASHRU Specification

1. Row shape

A single ASHRU row is exactly eleven fields, separated by the pipe character |. Fields are positional — the meaning of each cell is determined by its index, not by a label.

V | Action | Subject | Object | Instrument | Recipient | Source | Location | Tense | Negated | Attributes

Example: V|deploy|engineer|api||||staging|p|0|

2. Field semantics

# Field Required Notes
0versionyesSchema version. V or V1 for this spec.
1actionoptionalThe verb in base form.
2subjectoptionalThe agent.
3objectoptionalThe direct object.
4instrumentoptionalMeans / how.
5recipientoptionalIndirect object.
6sourceoptionalOrigin.
7locationoptionalWhere the action takes place.
8tenseoptionalSingle char: p past, n present, f future, h habitual, c conditional.
9negatedyes0 or 1.
10attributesoptionalFree-form annotation slot.

3. Encoding rules

4. Version semantics

Field 0 is reserved for protocol versioning. Future revisions of the ASHRU spec bump the version string (V2, V3, …) to ensure downstream parsers can detect and route by schema generation. Parsers SHOULD reject unrecognized version strings; producers SHOULD emit only versions they know how to populate.

5. Parser recovery

Extraction is probabilistic. Production parsers should expect occasional malformed rows from LLM outputs. Recommended recovery patterns:

6. Relationship to richer schemas

ASHRU is a transport protocol. Downstream systems may extend rows with additional metadata at storage time — for instance, the KOSHA engine layers retrieval factors (embeddings, recency, persona weights) on top of the ASHRU base. Those extensions live in the storage system, not in the wire format.

Specification text is CC0 / public domain. Reference parsers are MIT-licensed. Bug reports and protocol proposals: github.com/sumaproai/ashru.