Skip to main content

Yoker Writing Assistant

Python uv Yoker Docs Agentic

A writing assistant that coaches and develops — but never writes for you.

This is a Yoker showcase package. It demonstrates the yoker-as-runtime mode: Yoker is the entry point, and this package provides the main agent and skills for an interactive writing coaching session. The agent interviews, challenges, reviews, and flags — but every word of prose is written by the author.

Full documentation is published at yoker-writing-assistant.readthedocs.io — including a tutorial that tells the build story end-to-end, a quickstart with a worked example, and a per-skill reference.

Status

Initial release. The Python package, plugin manifest, entry point, agent definition, and all 8 skills are in place. Tests pass, all quality gates green. See AGENTS.md for the full project guide.

What It Does

The writing assistant is a developmental editor + writing coach for an author who writes every word themselves. It operates on the declared-work scope: it only acts on prose the author has already written. It never generates prose, never rewrites, never fills blanks.

Skills

Skill What it does
writing-review Developmental review, claim verification, gap/perspective analysis
writing-continuity Dangling references, cold terms, dropped themes, missing transitions
writing-voice Voice drift detection, ChatGPT smell flagging, voice profile checks
writing-mistakes Common writing mistakes — eggcorns, redundancies, non-native errors, craft patterns
writing-idioms Idiom/proverb misuse → canonical form as a proposal
writing-split Long-form → sequential social post sequence
writing-order Reorder raw material into smooth argument flow
copy-writer Platform-specific content adaptation (Twitter, LinkedIn, Mastodon, etc.)

The Non-Negotiable Rule

The agent never writes prose. Every gap is marked TODO:, every proposal is marked TODO PROPOSAL:. The author accepts, rejects, or writes. This is the core design principle — friction is the value, not a bug.

Quick Start

uvx yoker-writing-assistant                    # run directly (if published)

From a local checkout:

make env-dev                                    # install all dependencies
make run                                        # launch the writing assistant

Or run directly via the Yoker CLI:

yoker --with yoker_writing_assistant --agent-name yoker_writing_assistant:writing-assistant

A Yoker backend is a prerequisite — either a local Ollama install or a cloud LLM provider API key. If you do not already have one, run uv run yoker init once to write ~/.yoker.toml with a backend of your choice.

Configuration

Runtime configuration lives in ~/.yoker.toml (never committed). A reference template is provided as yoker.toml in this repo. The key sections:

  • [backend] — LLM provider and model
  • [agents.directories] — directories to scan for agent definitions (e.g., for the optional researcher agent)
  • [skills.directories] — directories to scan for skill definitions
  • [plugins] — plugin registration (this package is loaded via --with yoker_writing_assistant)

Optional: Researcher

The writing assistant can delegate research tasks to c3:researcher, an external research agent. To enable it, add to yoker.toml:

[agents.directories]
c3 = "../c3/agents"

If the researcher is not configured, research delegation is unavailable and the agent falls back to direct web search (yoker:websearch / yoker:webfetch), noting the limitation in its output. All other functionality works without it.

Architecture

This package is a Yoker plugin: it declares an __YOKER_MANIFEST__ that points Yoker to its agents/ and skills/ directories (inside the Python package, discovered via importlib.resources). Yoker's plugin loader discovers the agent and skill definitions automatically, namespacing them under yoker_writing_assistant:. The entry point is a thin Python wrapper (cli.py) that injects --with yoker_writing_assistant and --agent-name yoker_writing_assistant:writing-assistant into Yoker's CLI, so uvx yoker-writing-assistant launches the writing assistant directly.

The sister project yoker-assistant demonstrates the complementary mode — yoker-as-SDK — where Python owns the process and calls Yoker as a library.

Both projects share a common quality bar documented in STANDARDS.md.

Documentation

Full documentation lives in docs/ and is published to ReadTheDocs:

https://yoker-writing-assistant.readthedocs.io

The Tutorial tells the build story end-to-end — why this package exists, the non-negotiable rule, the thin-orchestrator architecture, the eight skills, the plugin manifest and CLI wrapper, and the optional researcher integration.

Supporting pages: Installation, Quickstart, Architecture, Skills, Configuration, API, Dogfooding, Changelog.

The AGENTS.md file provides the project guide for agents working on this codebase. PACKAGE.md provides AI-optimized package documentation for consumers.

License

MIT

Metadata

Release files for yoker-writing-assistant 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yoker-writing-assistant 0.1.4
File Size Uploaded Provenance Actions
yoker_writing_assistant-0.1.4.tar.gz 295.0 kB Without provenance Details for yoker_writing_assistant-0.1.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for yoker-writing-assistant 0.1.4
File Interpreter ABI Platform Actions
yoker_writing_assistant-0.1.4-py3-none-any.whl Python 3 none any Details for yoker_writing_assistant-0.1.4-py3-none-any.whl

Total release size: 348.3 kB

Release files / yoker_writing_assistant-0.1.4.tar.gz

Download URL yoker_writing_assistant-0.1.4.tar.gz
Size 295.0 kB
Tags Source
SHA-256 checksum
How to use checksums
19da6c4b44cf9551414e1c6efd998e3c128aaf508aaaf16bd96b4a1440da7d2d
BLAKE2b-256 checksum
How to use checksums
237f28b20e8f76e56129f90819d7dc9bf0bc3d0147222d98cd903b66fd8781b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Release files / yoker_writing_assistant-0.1.4-py3-none-any.whl

Download URL yoker_writing_assistant-0.1.4-py3-none-any.whl
Size 53.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4eb07f236fa77786ffa0517e5db053bb2f82ba470a91da04d7763291580d3de7
BLAKE2b-256 checksum
How to use checksums
87c814d3c88362983e05ea5f4664e5e7fed8f885e323afa3d225316cb6dcdd4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.13

Security for yoker-writing-assistant 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page