{% extends "base.html" %} {% from "_help.html" import info %} {% from "_job_status.html" import job_status %} {% block title %}Rewrite — Paperful{% endblock %} {% block body_attrs %}{% if poll_run %} data-poll-run="{{ poll_run }}"{% endif %}{% endblock %} {% block content %}

Rewrite

Apply an existing critique pack to a draft. Default area is hygiene/style. Writes state/rewrites/ (edit plan, optional sidecar, tracked-changes Word). Never overwrites the source. Not a generated paper.

{% if error == 'target' %}
Pick a critique pack. Optionally upload a replacement draft if the original file moved.
{% endif %} {% if error == 'format' %}
That file type is not supported.
{% endif %} {% if error == 'size' %}
The upload is larger than 40 MB.
{% endif %} {% if error and error not in ('target', 'format', 'size') %}
{{ error }}
{% endif %} {{ job_status(run_rec, 'Rewrite') }}

From a critique pack

Requires a pack under state/critiques/. Run Critique first. Dismissed findings are skipped.

Areas {{ info("Default is style (hygiene). Enable cites/structure/comments in config or here.") }}
Outputs
{% if not llm_on %}

[llm] is off. Style glossary/Vale substitutions still run. Other areas skip to needs_author.

{% endif %} {{ info("Writes state/rewrites///. Does not change the original file or Zotero.") }} {% if not recent %}

No critique packs yet. Run Critique first.

{% endif %}
{% if result and result.counts %}

This pack

Edits: {{ result.edits or result.counts.edits or 0 }} · skips: {{ result.skips or result.counts.skips or 0 }} {% if result.critique_id %}· id {{ result.critique_id }}{% endif %}

{% if downloads %}

{% for f in downloads %} {{ f.name }}{% if not loop.last %} · {% endif %} {% endfor %}

{% endif %} {% if pack_md %}
{{ pack_md }}
{% endif %}
{% endif %} {% endblock %}