| name | description | version |
|---|---|---|
orality-check |
Analyze text for orality markers using the Havelock API. Use when the user asks to check orality, analyze text for oral/literate characteristics, or mentions "orality score" or "Havelock". |
1.0.0 |
Analyzes text for orality markers using the Havelock API. Returns a score from 0 (highly literate) to 1 (highly oral) with interpretation.
The user will provide text in one of these ways:
- A file path to analyze
- Direct text in quotes or a code block
- Reference to content already in context
-
Get the text: If user provides a file path, read it. If direct text, use it as-is.
-
Call the Havelock API:
curl -s -X POST "https://jnathan--havelock-api-havelockapi-analyze.modal.run" -H "Content-Type: application/json" -d '{"text": "TEXT_HERE", "include_chunks": true}'-
Parse the response which contains:
orality_score: 0-1 floatinterpretation: object withmodeanddescriptionword_count: words processedchunks_analyzed: number of 512-token chunkswarning: optional notice for short texts
-
Present results using this visual format:
═══════════════════════════════════════════════════════ 78% ORALITY SCORE LITERATE ○━━━━━━━━━━━━━━━━━━━━━━━━━━━━●━━━━━ ORAL Oral — Speeches, podcasts, storytelling ═══════════════════════════════════════════════════════ 61 words analyzed · 1 chunkHow to build the visual bar:
- The bar has 40 characters between LITERATE and ORAL
- Calculate position:
round(score * 40) - Use
━for the line,●for the score position - Place
○at position 0 (literate end)
Score-to-label mapping:
- 0.85-1.0: "Highly Oral — Epic verse, sermons, rhythmic speech"
- 0.65-0.85: "Oral — Speeches, podcasts, storytelling"
- 0.45-0.65: "Mixed — Casual blogs, opinion essays"
- 0.25-0.45: "Literate — Journalism, formal writing"
- 0.0-0.25: "Highly Literate — Academic works, legal documents"
After the visual summary, optionally add brief commentary on why the text scored as it did (e.g., noting repetition, invocations, epithets for oral texts, or complex syntax and abstraction for literate texts).
- No authentication required (free API)
- For long texts, use
include_chunks: trueto get per-chunk analysis - Short texts (<100 words) may include a reliability warning
- Escape quotes and special characters in the text before sending to API