mattlane66/matthew-lane-writing-assistant
v0.46.0
Writing Assistant preserves the writer's meaning and voice while improving thought, structure, reasoning, coherence, and sentence craft. Its MCP retrieves canonical repository methods and can render an optional interactive diagnostic; the user's ChatGPT or Codex model performs all reasoning and writing.
plugin.json
- name
- matthew-lane-writing-assistant
- version
- 0.46.0
- description
- Writing Assistant preserves the writer's meaning and voice while improving thought, structure, reasoning, coherence, and sentence craft. Its MCP retrieves canonical repository methods and can render an optional interactive diagnostic; the user's ChatGPT or Codex model performs all reasoning and writing.
- author
- Matthew Lanehttps://github.com/mattlane66/Writing_Assistant
- extensions
- com.openai
plugin.json
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "matthew-lane-writing-assistant",
"version": "0.46.0",
"description": "Writing Assistant preserves the writer's meaning and voice while improving thought, structure, reasoning, coherence, and sentence craft. Its MCP retrieves canonical repository methods and can render an optional interactive diagnostic; the user's ChatGPT or Codex model performs all reasoning and writing.",
"author": {
"name": "Matthew Lane",
"url": "https://github.com/mattlane66/Writing_Assistant"
},
"homepage": "https://github.com/mattlane66/Writing_Assistant",
"repository": "https://github.com/mattlane66/Writing_Assistant",
"keywords": [
"writing",
"editing",
"revision",
"voice",
"reasoning"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "Writing Assistant",
"shortDescription": "Maintain your voice.",
"longDescription": "Writing Assistant improves prose without flattening the writer. It works from purpose and semantic relations through thought movement, information structure, syntax, literal audit, and preservation; preserves supported meaning and uncertainty; treats generic-but-fluent prose as a failure; audits cross-sentence coherence; and conditionally evaluates arguments when real support relations are present. For substantive work, the MCP retrieves current canonical methods and references from the public repository and the user's current ChatGPT or Codex model applies them directly. When inspection or writer choice materially helps, a dedicated render tool can show marked passages, violation/pressure/pass judgments, thinking questions, Keep it, repair directions, and canonical method provenance, then return selected decisions to the conversation for host-model revision.",
"developerName": "Matthew Lane",
"category": "Creativity",
"capabilities": [
"skills",
"Interactive"
],
"websiteURL": "https://writing-assistant-mcp.up.railway.app/",
"privacyPolicyURL": "https://writing-assistant-mcp.up.railway.app/privacy.html",
"termsOfServiceURL": "https://writing-assistant-mcp.up.railway.app/terms.html",
"defaultPrompt": [
"Critique this text. Diagnose the main problems in thought, structure, evidence, implication, voice, and sentence craft.",
"Rewrite this text where needed while preserving all supported meaning, facts, uncertainty, required details, and voice.",
"Light edit this text for clarity, flow, and correctness while preserving its structure and voice."
],
"logo": "./assets/icon.svg",
"composerIcon": "./assets/icon.svg",
"supportURL": "https://writing-assistant-mcp.up.railway.app/support.html"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Substantive edit with voice and meaning preservation.",
"prompt": "Polish this paragraph without changing my meaning or making it sound corporate: The train was late. We missed the meeting. I don't want to dress that up.",
"tools_triggered": "search_writing_methods",
"expected_behavior": "Use search_writing_methods with an abstract description of the edit, then have the host model preserve the plain causal sequence and restraint without decorative transitions or generic professional polish."
},
{
"description": "Cross-sentence coherence and literal audit.",
"prompt": "Diagnose this passage interactively and tell me what does not add up before rewriting anything: Nora entered the museum at noon. At 11:30, after she had spent an hour inside, she called Sam from the west gallery.",
"tools_triggered": "search_writing_methods, get_writing_reference, render_writing_diagnostic",
"expected_behavior": "Retrieve coherence guidance without sending the full passage to retrieval tools, have the host model identify the timeline inconsistency without inventing a flashback or alternate chronology, then render the exact passage with calibrated findings linked to canonical method IDs and the authorized craft-analysis mode. The UI should allow a writer choice to return to the conversation without silently authorizing a rewrite."
},
{
"description": "Draft from supplied facts without invented specificity.",
"prompt": "Draft two sentences from only these facts: the tool imports CSV files and compares two versions row by row.",
"tools_triggered": "search_writing_methods",
"expected_behavior": "Retrieve drafting and source-discipline methods, then have the host model draft only from the supplied mechanism without inventing customers, speed, accuracy, integrations, or outcomes."
},
{
"description": "Preserve already-good prose instead of manufacturing an edit.",
"prompt": "Edit this only if it materially improves it: The train was late. We missed the meeting.",
"tools_triggered": "search_writing_methods",
"expected_behavior": "Retrieve preservation and mode-boundary guidance, then have the host model leave the passage unchanged unless a demonstrable material improvement exists."
},
{
"description": "Analyze a real argument without strengthening it into a different one.",
"prompt": "Analyze this argument without rewriting it: If the payment failure rate remains above the agreed threshold, we should delay launch. The failure rate is still above the threshold. Therefore we should delay launch.",
"tools_triggered": "search_writing_methods, get_writing_reference",
"expected_behavior": "Retrieve argument guidance, then have the host model identify the explicit conditional premise, factual premise, and conclusion, assess the inference as valid if the premises are accepted, and keep premise truth/evidence distinct from inferential validity."
}
],
"negative": [
{
"description": "External retrieval is outside these MCP tools; do not fetch an unpublished draft that the user has not supplied. Ask the user to provide the text or use an appropriate connected source.",
"prompt": "Find my unpublished draft in Google Drive. I have not pasted or attached it."
},
{
"description": "Publishing is outside these MCP tools; do not modify the user's website. Return only writing help or direct the user to the appropriate publishing tool.",
"prompt": "Publish this essay to my website."
},
{
"description": "Independent current-fact verification is outside these MCP tools; do not pretend to verify claims from the web. Use an appropriate research tool instead.",
"prompt": "Prove every factual claim in this article using current web sources. I do not want an edit."
}
]
},
"commerce": false,
"demo_recording_url": "https://writing-assistant-mcp.up.railway.app/review/writing-assistant-demo.mp4"
},
"publication": {
"release_notes": "Version 0.46.0 fixes analysis-only diagnostic handoff, requires evidence-first criticism and exception checks, and adds explicit launch-evidence reporting. Discussion choices do not authorize rewriting. The host model still performs semantic judgment; partial book coverage and unverified ChatGPT/Work quality remain explicit limitations. No additional model requests.",
"countries": []
}
}
}
}
Client extensions
Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.
- com.openai