Plot a prose intensity curve per sentence and flag where a tense passage loses velocity

$0.005 USDC per call · Agent infrastructure · POST /api/v1/pacing-intensity-evaluator · Id pacing-intensity-evaluator

Scores each sentence of narrative prose for pace from sentence length, share of one-syllable words, exclamation and question marks and, if you supply a word list, action-word share; smooths the scores into an intensity curve; and reports stalls, the spans where intensity falls well below an earlier peak. For a writing tool or editor agent checking an action or tension scene. A fixed-weight heuristic, not a model of reader experience: the weights are authored and unvalidated against human ratings, English only, and action words match exactly (no stemming, no built-in verb list). It does not rewrite text or judge quality.

What you get

Locates the sentences where a scene sags so a model or editor reads only those; no model call, 100,000 characters per $0.005.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/pacing-intensity-evaluator. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/pacing-intensity-evaluator \
  -H 'content-type: application/json' \
  -d '{"text":"He ran. The door slammed behind him! Boots hit the stairs, two at a time. Who was following? Glass broke somewhere above. He did not look back. The corridor stretched on for what seemed like an eternity, lined with portraits of ancestors whose names he had never learned and whose faces told him nothing at all. Eventually the hallway opened onto a wide and quiet room full of old furniture covered in sheets, where dust hung in the afternoon light and nothing at all moved.","expect":"tense"}'

Input

FieldTypeRequiredDescription
textstring; length 1..100000yesProse to score.
actionWordsarray<string; length 1..40>; max 500 itemsnoYour own action-word list. Without it the action component is left out and the other weights are renormalized.
expectstring; one of "any", "tense"notense: fail if the curve never reaches peakThreshold. any (default): only stalls after a peak can fail.
windowinteger; 1..20noSentences in the trailing moving average. Default 3.
stallDropnumber; 0.05..0.9noFall below the running peak that counts as a stall. Default 0.25 on the 0-1 intensity scale.
peakThresholdnumber; 0.1..0.95noSmoothed intensity a passage must reach before a later fall can be a stall. Default 0.55.
minSentencesinteger; 2..100noFewer scored sentences is unknown. Default 8.

Example request body

{
  "text": "He ran. The door slammed behind him! Boots hit the stairs, two at a time. Who was following? Glass broke somewhere above. He did not look back. The corridor stretched on for what seemed like an eternity, lined with portraits of ancestors whose names he had never learned and whose faces told him nothing at all. Eventually the hallway opened onto a wide and quiet room full of old furniture covered in sheets, where dust hung in the afternoon light and nothing at all moved.",
  "expect": "tense"
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
statusstring; one of "pass", "fail", "unknown", "unsupported"nopass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass.
summaryobjectno
curvearray<object>; max 3000 itemsno
stallsarray<object>; max 200 itemsno
truncatedbooleannoTrue when the curve was cut to its first 3000 sentences; stalls and summary cover the whole text.
witnessesarray<object>no
versionsobjectnoEvery semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile).
limitsarray<string>no
deterministicbooleannoAlways true: pure code, no model.

Pay and connect

Available through: x402 (USDC on Base), MCP. MCP clients reach it through the context-evidence-kit package.

Machine-readable