changedInput schema / properties / text / description
Previous value: -"The text to check, exactly as written (at most 12,000 characters, about 2,000 words). Plain text or Markdown; code blocks and links are skipped."New value: +"The text to check, copied exactly as the user wrote it, such as \"Great question! I hope this helps.\" At most 12,000 characters (about 2,000 words); a score needs at least 40 words. Plain text or Markdown. Code blocks, inline code and web links are not checked, but they still count in the offsets, which always point into the text as sent."
addedOutput schema / properties / caveat / description
Added value: +"Fixed reminder to pass on: a finding is a place to look at, not proof of who wrote the text."
changedOutput schema / properties / findings / description
Previous value: -"At most 60, in text order."New value: +"At most 60, in text order. When more exist, the most severe are kept."
changedOutput schema / properties / findings / items / properties / end / description
Previous value: -"Offset just after the last character."New value: +"Offset just after the last matched character; text.slice(start, end) gives the matched words."
addedOutput schema / properties / findings / items / properties / end / minimum
Added value: +0
addedOutput schema / properties / findings / items / properties / excerpt / description
Added value: +"The matched words, the text from start to end, cut to 120 characters with … when longer."
addedOutput schema / properties / findings / items / properties / fix / description
Added value: +"A concrete change the writer can make."
addedOutput schema / properties / findings / items / properties / problem / description
Added value: +"Why this habit reads like AI writing, in plain words."
changedOutput schema / properties / findings / items / properties / rule / description
Previous value: -"Rule id, such as hedging-opener."New value: +"Rule id, such as hedging-opener or dash-density."
addedOutput schema / properties / findings / items / properties / rule / enum
Added value: +[
+ "chatbot-wrapper",
+ "sycophantic-praise",
+ "knowledge-limit",
+ "stock-opener",
+ "hedging-opener",
+ "stacked-hedges",
+ "deep-sounding-saying",
+ "dramatic-closer",
+ "generic-closer",
+ "connector-opener",
+ "overused-word",
+ "inflated-significance",
+ "participle-rider",
+ "sales-language",
+ "plain-verb-avoidance",
+ "unnamed-authority",
+ "contrast-formula",
+ "argues-with-no-one",
+ "rule-of-three",
+ "dash-density",
+ "uniform-sentence-length",
+ "repeated-sentence-opening",
+ "decorative-formatting"
+]
addedOutput schema / properties / findings / items / properties / severity / description
Added value: +"How strongly the habit reads as AI writing: high 3 points, medium 2, low 1."
changedOutput schema / properties / findings / items / properties / start / description
Previous value: -"Offset of the first character in the text as sent (UTF-16 code units)."New value: +"Offset of the first matched character in the text as sent (UTF-16 code units)."
addedOutput schema / properties / findings / items / properties / start / minimum
Added value: +0
addedOutput schema / properties / findings / items / required
Added value: +[
+ "rule",
+ "severity",
+ "start",
+ "end",
+ "excerpt",
+ "problem",
+ "fix"
+]
addedOutput schema / properties / findings / maxItems
Added value: +60
addedOutput schema / properties / rules_version / description
Added value: +"Version of the rule set, such as 1. The same text and version always give the same answer."
addedOutput schema / properties / source / description
Added value: +"Where the rules come from: fixed patterns written for this service, with no AI model."
changedOutput schema / properties / summary / properties / basis / description
Previous value: -"How the score is worked out."New value: +"How the score is worked out. For a too_short text it also says how many words to send for a score."
addedOutput schema / properties / summary / properties / by_rule / additionalProperties
Added value: +{
+ "minimum": 1,
+ "type": "integer"
+}
addedOutput schema / properties / summary / properties / by_rule / description
Added value: +"Findings per rule id, most frequent first. Only rules with a finding appear."
addedOutput schema / properties / summary / properties / by_severity / description
Added value: +"Findings per severity."
addedOutput schema / properties / summary / properties / by_severity / properties
Added value: +{
+ "high": {
+ "description": "High-severity findings.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "low": {
+ "description": "Low-severity findings.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "medium": {
+ "description": "Medium-severity findings.",
+ "minimum": 0,
+ "type": "integer"
+ }
+}
addedOutput schema / properties / summary / properties / by_severity / required
Added value: +[
+ "high",
+ "medium",
+ "low"
+]
addedOutput schema / properties / summary / properties / findings / description
Added value: +"All findings, including any left out of the findings list."
addedOutput schema / properties / summary / properties / findings / minimum
Added value: +0
addedOutput schema / properties / summary / properties / level / description
Added value: +"low under 15, moderate 15 to 39, high 40 or more; too_short under 40 words, with findings still listed."
changedOutput schema / properties / summary / properties / score / description
Previous value: -"0 to 100, or null when the text is too short to score."New value: +"0 to 100, or null when the text has fewer than 40 words."
addedOutput schema / properties / summary / properties / score / maximum
Added value: +100
addedOutput schema / properties / summary / properties / score / minimum
Added value: +0
addedOutput schema / properties / summary / properties / sentence_length / description
Added value: +"Sentence lengths in words, the basis of the rhythm rules."
addedOutput schema / properties / summary / properties / sentence_length / properties
Added value: +{
+ "mean_words": {
+ "description": "Mean words per sentence, to one decimal.",
+ "type": "number"
+ },
+ "sentences": {
+ "description": "Sentences and list lines counted.",
+ "minimum": 0,
+ "type": "integer"
+ },
+ "stdev_words": {
+ "description": "Standard deviation of words per sentence, to one decimal.",
+ "type": "number"
+ }
+}
addedOutput schema / properties / summary / properties / sentence_length / required
Added value: +[
+ "sentences",
+ "mean_words",
+ "stdev_words"
+]
addedOutput schema / properties / summary / required
Added value: +[
+ "score",
+ "level",
+ "findings",
+ "by_severity",
+ "by_rule",
+ "sentence_length",
+ "basis"
+]
addedOutput schema / properties / text / description
Added value: +"Size of the text that was checked."
addedOutput schema / properties / text / properties / characters / description
Added value: +"Characters in the text as sent, code included."
addedOutput schema / properties / text / properties / characters / minimum
Added value: +0
addedOutput schema / properties / text / properties / words / description
Added value: +"Words in the prose, after code blocks and links are left out."
addedOutput schema / properties / text / properties / words / minimum
Added value: +0
addedOutput schema / properties / text / required
Added value: +[
+ "characters",
+ "words"
+]
addedOutput schema / properties / truncated / description
Added value: +"True when there were more than 60 findings; summary still counts all of them."
addedOutput schema / required
Added value: +[
+ "not_authorship",
+ "source",
+ "as_of",
+ "rules_version",
+ "text",
+ "summary",
+ "findings",
+ "truncated",
+ "caveat"
+]