Voice and style profile
Returns typed style records with their source-note evidence. Use style_profile (POST /v1/style/profile) when an AI tool needs to write in this person's voice (résumé bullets, cover letters, bios, talks, email drafts) without prompt-stuffing the source corpus.
Style records are real graph entities with provenance, confidence, and edges back to the notes they were learned from. They are not summarised paragraphs of advice; they are structured rules a writing agent can reason over.
- Three categories:
style_observation,style_preference,vocabulary_rule. - Every record carries the evidence-note ids it was extracted from.
- Optional
scopefilter narrows to a specific writing context (e.g.technical-writing,formal-writing). - Optional
sourceRunIdfilter narrows to records extracted from a single ingest run, useful for showing what a fresh thesis or essay actually contributed to the voice.
Example
{ "scope": "technical-writing", "limit": 8 }
Every response carries four parts:
Observations
Descriptive patterns the distiller noticed. Each carries an optional consumerGuidance field so an agent can act on it directly.
[
{
"id": "a01f…",
"type": "style_observation",
"category": "structural",
"scope": ["technical-writing"],
"pattern": "Prefers concrete nouns over abstractions; opens paragraphs with the subject acting.",
"consumerGuidance": "Start sentences with the actor; avoid passive scaffolding.",
"confidenceKind": "asserted",
"confidenceScore": 0.82,
"evidenceNoteIds": ["9b2c…", "11ee…"],
"rationale": "Across five distilled paragraphs the subject-first pattern held."
}
]
Preferences
Prescriptive rules: what the writer wants downstream output to do or avoid.
[
{
"id": "b22d…",
"type": "style_preference",
"category": "framing",
"scope": ["technical-writing", "formal-writing"],
"preference": "Frame the Northstar work as cross-functional delivery, not just a product launch.",
"strictness": "strong",
"confidenceKind": "user-asserted",
"confidenceScore": 1.0,
"evidenceNoteIds": ["7a8b…"],
"rationale": "Direct user-context assertion."
}
]
Vocabulary rules
Specific terms, casing, or substitutions the writer cares about.
[
{
"id": "c44e…",
"type": "vocabulary_rule",
"category": "casing",
"scope": ["technical-writing"],
"term": "Northstar",
"rule": "Capitalize as a proper noun; never split into two words.",
"strictness": "strong",
"confidenceScore": 0.9,
"evidenceNoteIds": ["9b2c…"]
}
]
Evidence notes
For every style record above, the evidence-note excerpts behind it, so an agent can quote real voice rather than paraphrasing rules.
[
{
"id": "9b2c…",
"sourceRunId": "f1a3…",
"sourceKind": "blog-post",
"snippet": "We did not pitch Northstar as a product launch. We pitched it as a cross-functional delivery effort that unified Product, Design, and Operations …",
"styleDescription": "Technical, declarative, foregrounds the subject."
}
]
Filtering
| Filter | Behaviour |
|---|---|
scope |
Returns only records whose scope array contains the requested value |
sourceRunId |
Returns only records extracted from the given source run |
limit |
Caps each of the three record buckets independently (default 8, max 50) |
Filters are non-destructive: if scope matches no records, you get empty arrays plus the evidence notes for any matched records (which will also be empty in that case).
Building a style guide
A writing agent can compose observations + preferences + vocabularyRules into a short style guide, then back-cite using evidenceNoteIds. The local CLI's marrow style eval-plan and marrow style eval-run build blind A/B writer prompts and a source-aware judge prompt on top of this same data. See the CLI integration.
What you get back
| Field | Description |
|---|---|
observations |
Descriptive patterns with optional consumerGuidance |
preferences |
Prescriptive rules with strictness |
vocabularyRules |
Term-level rules: casing, substitution, banned words, preferred phrasings |
evidenceNotes |
Source-note excerpts cited by evidenceNoteIds on the records above |
filters |
Echo of the sourceRunId / scope you sent |
Scope
Requires an API key with scope style. See the Style Profile API Reference for the full schema.