=== DraftForge ===
Contributors: avakodeforge
Tags: content generation, ai content, blog automation, topic mining, stale content
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.4.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

AI content automation — auto blog post generation, stale-content refresh, and topic mining from your existing posts.

== Description ==

DraftForge keeps your WordPress site fresh with AI-powered content automation. It mines topic gaps from your existing posts and taxonomies, generates complete blog post drafts, and detects stale content ready for an AI-powered refresh — all from a single, clean admin interface.

Nothing reaches your site unread. Five checks stand in front of publish: four of them measure a draft — its length, its internal links, whether it carries an image direction, how close it is to something you already published — and the fifth reads it, the way a person skims the first two sentences, and objects in words with the sentence quoted. And when the objection should come from a colleague rather than from code, an author can hand a queued draft to the editor who is allowed to say yes.

The AI work is metered by Forge credits and runs on the free tier. The optional Pro add-on sells one thing: the autopilot — the same pipeline on a timer, publishing what passes the gate, with a weekly cap and a checkpoint that stop it on its own.

= Free features =

* **Topic Miner** — free heuristic mode scans your post titles, categories, and tags to surface content gaps, no API call needed
* **AI Topic Mining** — richer topic suggestions with fit scores and rationale (~2 credits per run via the Forge API)
* **Draft Generator** — produces a complete, structured blog post draft from any approved topic (~6 credits per post: 1 for the outline, 5 for the body)
* **Stale Content Detector** — finds published posts older than a configurable threshold and lists them as candidates for an AI refresh. A hint, not a queue: age on its own raises no maintenance task
* **Maintained collection** — pick the published posts you want kept current (up to 100), give each an owner and a next-review date. Everything below reads that list and nothing else
* **Allowed sources** — up to five URLs per tracked post that the post is maintained against. Read on a schedule and at most once every 12 hours each, http/https only, no redirect into a private address, a one-megabyte and fifteen-second limit, and the text cached so a change can be quoted. A source that cannot be read says which — unavailable, paywall, removed, or asks not to be read — and since when. Text from a source reaches the model as quoted data inside a fence, never as an instruction
* **Maintenance tasks** — a changed source, an arrived review date, or a decline report you paste in raises a task on the Queue tab with a brief: what changed, where that is known from, which blocks of the post mention something out of it (a word match, offered as possibly affected), and how many blocks it does not touch. Rewrite with AI, or say no change is needed
* **AI Refresh** — rewrites stale posts in place when the quality filter passes; otherwise lands them in the Queue tab for review, with the body it was handed kept alongside so the comparison is against what the model actually saw (~3 credits per post)
* **Queue** — review, approve, or dismiss AI-generated drafts and refreshes before publishing
* **Diff review** — a rewrite replaces a whole live article, so every pending refresh has a Review changes screen: the proposed text beside the original, block by block and word by word, with a Words / Links / Images / Headings / Blocks strip for the changes prose cannot show. Accept publishes exactly the text you read; Reject discards the rewrite and leaves the live post untouched. If the post was edited after the rewrite was proposed, the screen says so before you accept
* **Editorial calendar** — a month grid of everything you have planned, drawn in your own timezone and starting on the day your site starts its week. Drag a draft or a topic onto a day, or type the date into the field on the card; every move works from the keyboard as well as the mouse. Planning writes a date and nothing else
* **Publish on a date you chose** — hand a finished draft to WordPress for a morning next week and WordPress publishes it then, exactly as if you had set the date in the editor. A date that has already passed is refused rather than published on the spot, and taking a post back to a draft is one click
* **Quality Filter** — five checks stand between a generated draft and your live site: minimum word count, at least two internal links, an image direction, a similarity comparison against the posts you already have, and the slop lint on the next line. Anything that fails waits in the Queue tab; every threshold is filterable
* **AI-slop lint** — the fifth check, and the only one that reads rather than counts. A body can clear every threshold above and still open with "In today's fast-paced world", promise to delve into its own title, and repeat one sentence shape forty times. The lint answers with findings instead of a score: a bundled list of 132 stock phrases measured as a density per 1000 words, four kinds of repetition, an introduction that only restates the title, a rhythm too even to have been written by a person, dates and figures that cannot be true, and text laid out as a list where it should be prose. Every finding quotes the sentence and says what is wrong with it, in the Queue tab and on the refresh review screen. Three strictness settings — lenient, standard, strict — decide which findings stop a draft; the checks themselves always run at all three. Free, and it costs no credits: the credits already paid for the draft
* **Review roles** — the author generates, the editor approves. "Request review" moves a queued draft to whoever holds the new `draftforge_review_drafts` capability — Administrator and Editor by default, granted on activation and on every upgrade, and removed from every role when the plugin is deleted. They can approve and publish, approve as a draft, or send it back with a note; who asked and who decided is written on the row with the time, and a reviewer is e-mailed at most once an hour however many drafts arrive in it. The Queue screen and the request itself need `publish_posts`, so an Author reaches their own work and a Contributor never sees the site's drafts, their costs or their reports
* **Credit history** — a Credits tab showing what every AI call actually cost, month to date against your own ceiling, and the price list the plugin is working from. Includes the spend nothing else records: the outline of a draft that failed on its body
* **Monthly credit ceiling** — set a number of credits Draft Forge may spend per calendar month (UTC) and it refuses to go past it, before the request is made. 0 means no ceiling, which is the default. It is the same number with or without the Pro add-on
* **Settings** — configure brand voice, target audience, and target word count for every generated post
* **Brand voice** — the field is a box you fill in from memory, so Analyse my voice reads up to five posts you actually published (yours first, the site's newest if you have written fewer) and answers with the shape of your writing: tone, sentence length, person, the words that are yours and the ones that would read as somebody else. The summary is offered as a one-click replacement for the field and never applied behind your back, and the profile itself is folded into the voice every later outline and draft is written to (~2 credits per run)
* **WP-CLI** — `wp draftforge mine [--ai]`, `generate <topic-id> [--publish]`, `refresh <post-id> [--apply]`, `gate <post-id>`, `queue [--status=]` and `credits`. Every command prints what the run will cost before it spends, the ones that spend refuse to until you pass `--yes`, and a refusal exits non-zero so a script can read it
* **Suite handoffs** — a published post hands its focus keyword to Rank Forge when Rank Forge is installed (free, no API call). Handing published posts to Lang Forge for translation is a separate opt-in checkbox, off by default, because Lang Forge charges its own ~3 credits per extra language on top of the draft

DraftForge is part of the **Forge Suite**. Learn more at https://avakode.com.

== External services ==

Every outbound request this plugin makes is listed below, in full. Nothing is contacted when the plugin is activated, and nothing is contacted by opening its screens.

**The Forge API, for the AI features.**

*What it is for.* Writing an outline, a draft, a refresh, a voice profile or an AI topic list is done by a language model. The model runs on our Cloudflare Worker at api.avakode.com, which holds the model provider's key and deducts credits from your Forge Suite wallet. The key never touches your WordPress install, and the work cannot be reproduced locally.

*What is sent.* The name of the action, the product identifier `draftforge`, your licence key if you have one, your site's address, and the material the action needs: the topic you typed, the outline it produced, or the text of the post being refreshed or analysed. No visitor data, no customer data and no database contents beyond the post in question.

*What is received.* The generated text and the credit cost of the call.

*When.* Only when you click one of the AI buttons — Mine topics with AI, Generate draft, Refresh, Analyse voice. Never on a schedule, never on a visitor's page view, never on activation. Heuristic topic mining and every scan, lint and queue feature run entirely on your own server and send nothing.

*Which endpoint.* `https://api.avakode.com/ai/process`

**The credit price list.**

*What it is for.* The Worker decides what an action costs. Without asking it, every screen would quote the prices that were typed into the plugin on release day, which drift.

*What is sent.* Nothing. It is an unauthenticated GET. No site identifier, no licence key, no personal data.

*What is received.* A list of credits per action.

*When.* Only after you have started using the metered features — that is, after you connect this site to an Avakode account, or after a credit has actually been charged here. Until then this request is not made and not scheduled, and the screens quote the prices shipped with the plugin, labelled as such. Once it applies, it runs at most once every twelve hours from a background job, never while a page is being drawn.

*Which endpoint.* `https://api.avakode.com/credits/pricing`

**Terms and privacy for the Forge API.** Terms of Service: https://avakode.com/terms — Privacy Policy: https://avakode.com/privacy

**Sources you add yourself.**

*What it is for.* A source is a web address you enter on the Collection screen so that drafts can be written against material you chose — your own documentation, a changelog, a reference page. The plugin reads that address and stores the text.

*What is sent.* A plain GET to the address you entered, identifying itself as `DraftForge/<version>; <your site address>` so the site you are reading can see who is asking. Nothing else is transmitted, and the addresses are the ones you typed — the plugin never discovers or contacts an address on its own.

*What is received.* The page's own text.

*When.* After you add or re-check a source, and thereafter on a daily rota of at most twenty-five sources a day. Remove a source and it is never fetched again.

*Which endpoints.* Whichever addresses you enter. There is no default and the list starts empty.

The plugin contains no analytics and no telemetry.

== Installation ==

1. Upload the `draftforge` folder to `/wp-content/plugins/`, or install through Plugins → Add New.
2. Activate DraftForge through the Plugins menu.
3. Open DraftForge → Topics and run the Topic Miner to find your first content gaps.
4. Click **Generate draft** on any topic to produce your first AI post.
5. Visit DraftForge → Settings to set your brand voice and generation defaults.

== Pro add-on ==

The separate Draft Forge Pro add-on adds the autopilot, and only the autopilot:

* Scheduled generation — up to ten new drafts and ten refreshes per run, at the frequency you choose. The queue it drains is the Topics tab you already have; Pro is what empties it without you.
* Automatic publishing of drafts that pass the quality gate
* A weekly publishing cap — three new posts in any rolling seven days by default, settable from 1 to 14 — that an automatic run never exceeds, however many posts per run you asked for. The extra topics are still drafted and still queued; they simply do not go live that week.
* A publication checkpoint — after every tenth hands-off publication by default — that pauses new posts going live until you confirm on the Schedule tab. Drafting, refreshes to posts already live and topic mining all carry on through the pause, and one e-mail goes out when it engages rather than one a day while it holds.
* Neither brake applies to a draft you generate by hand from the Queue tab. That is your decision, not the autopilot's, so it is neither counted nor refused.
* A draft still waiting on a review is never published by an automatic run.

The AI work itself stays in this free plugin and is metered by Forge credits. We do not charge a subscription for a model call the credits already paid for.

== Uninstalling ==

Deleting Draft Forge leaves your data alone by default: mined topics, the draft queue and the notes on generated posts all survive, so removing the plugin to try something else does not cost you the pipeline you built. Until 1.1.0 this was the other way round — everything went unless a developer knew about an option the interface never mentioned.

If you do want a clean slate, tick **Delete Draft Forge data when the plugin is deleted** in Draft Forge → Settings before deleting. Either way the scheduled run is unscheduled, so WordPress stops waking the site for a job that no longer exists.

== Frequently Asked Questions ==

= Do I need an account or API key for the free version? =

Free heuristic topic mining requires no account. AI features (topic mining with AI, draft generation, refresh) use the Forge API and require a free Forge account plus credits. New accounts receive a trial allowance.

= What is in the Pro add-on? =

The schedule. Drafting, refreshing and topic mining all work here, on the free plugin, paid for with credits. Pro is for running that pipeline without you — on a timer, in bulk, and optionally publishing what passes the gate. It also carries the two brakes on that: a weekly publishing cap and a checkpoint that pauses hands-off publishing until you confirm.

= Who is allowed to approve a draft? =

Whoever you gave the capability to. `draftforge_review_drafts` goes to Administrator and Editor when the plugin is activated and again on every upgrade, and to nobody else; it is removed from every role if you delete the plugin. An author with `publish_posts` can open the Queue tab and press "Request review" on their own draft, and the holder of the capability answers it — approve and publish, approve as a draft, or send it back with a note. Both ends are written on the row with the name and the time.

A Contributor is deliberately left out. The Queue tab carries every draft on the site with its cost and its quality report, and a Contributor who could reach it could also push somebody else's draft into review and e-mail every editor on the site about it.

= What stops the add-on publishing all day? =

Four separate things, and they fail in different directions. The quality gate holds anything that does not pass. The weekly cap publishes at most three new posts in any rolling seven days by default, whatever you set per run. The checkpoint pauses new posts going live after every tenth hands-off publication until you confirm — drafting and refreshes carry on meanwhile. And the monthly credit ceiling you set yourself refuses the model call before it is made; the add-on can neither raise nor lower it.

= Will it write in my voice? =

If you tell it how you sound, or let it read. The Brand voice field on the Settings screen is yours to fill in. "Analyse my voice" instead reads up to five posts you actually published — yours first, the site's newest if you have written fewer — and answers with your tone, sentence length, person, and the words that would read as somebody else. The summary is offered for the field with one click and never applied behind your back, and once you keep it, it is folded into the voice every later outline and draft is written to (~2 credits per run).

= Can I drive it from a script? =

Yes: `wp draftforge mine`, `generate`, `refresh`, `gate`, `queue` and `credits`. A terminal is the easiest place to spend by accident — no button, no price on it, no second click — so every command prints what the run will cost before it runs, the ones that spend refuse to without `--yes`, and every refusal exits non-zero. `gate` is the one built for that exit code: it spends nothing, prints the checks with their thresholds, and exits non-zero on a body the gate would hold.

= Does publishing a draft cost anything beyond the ~6 credits it took to write? =

Not by itself. The one thing that can add to it is the optional Lang Forge handoff: with Lang Forge installed *and* the "hand published posts to Lang Forge" box ticked in DraftForge → Settings, publishing queues one machine translation per extra language and Lang Forge charges ~3 credits for each. The box is off until you tick it, and it does not appear at all when Lang Forge is not installed.

= Where do I get more credits? =

Credits are purchased from https://avakode.com. Each Forge Suite plugin shares the same credit balance.

= Will AI-generated posts be published automatically? =

Never without you deciding it, draft by draft. Every draft and every refresh lands in the Queue tab and stays there until you act on it.

There is one thing the free plugin will do while you are away, and only because you asked it to for that one post: on the Calendar tab you can schedule a finished draft for a date, exactly as you would in the WordPress editor, and WordPress publishes it on the day. That is your approval, given in advance — a date that has already passed is refused rather than published on the spot, and one click takes the post back to a draft.

Hands-off publishing — output going live because it passed the quality filter, with nobody choosing that post at all — is the Pro add-on, and it is off until you switch it on. Even then it stops itself: three new posts in any rolling seven days by default, and a pause after every tenth publication until you confirm.

If the person who should decide is not you, hand the draft over: "Request review" moves it to an Editor, and no automatic run will publish a draft that is still waiting for that answer.

= How do I adjust how often the scheduler runs? =

The scheduler ships in the Pro add-on. With Pro active, open DraftForge → Schedule and choose a frequency (daily, twice-daily, weekly) and how many new posts and refreshes to generate per run.

== Changelog ==

= 1.4.1 =
* Requires Draft Forge Pro 1.4.0 or newer, unchanged from 1.4.0 — an older add-on is switched off whole rather than left running.
* Credit prices are fetched from api.avakode.com only once the site is connected to an Avakode account or has spent a credit; opening a screen no longer reaches the network.
* Admin script globals and data attributes carry the full draftforge prefix instead of cnf.
* The Forge Suite dashboard links Guard Forge, Velocity Forge and Flow Forge to their sites: guardforge.app, velocityforge.app and flowforgewp.app.

= 1.4.0 =
* Requires Draft Forge Pro 1.4.0 or newer, unchanged from 1.3.0 — an older add-on is switched off whole rather than left running.
* New: what the queue produced now appears on the Forge Suite dashboard's first screen, beside every other Forge tool's results — published, scheduled, waiting for review, stopped, one line per kind of work with how many and over what period. A post is reported as verified only while it is actually public on the site; anything still waiting on you keeps its next step and stays in "needs attention". No traffic or revenue figures: this tool knows what it wrote, not what the writing earned, and nothing leaves your site.

= 1.3.1 =
* Brand: new product icon and admin logo.
* Requires Draft Forge Pro 1.4.0 or newer, unchanged from 1.3.0.

= 1.3.0 =
* The quality gate has a fifth check, and it is the only one that reads. The other four measure a draft — length, internal links, an image direction, distance from what you already published. This one is the objection a reader would make: stock phrases counted as a density rather than spotted once, sentences and openings repeated, an introduction that only restates the title, a rhythm too even to have been written by a person, dates and figures that cannot be true, and text laid out as a list where it should be prose. It answers with the sentence and the reason beside it instead of a number, at one of three strictness settings, and it runs on a refresh exactly as it runs on a new draft — of the two bodies, the one being rewritten is the one that already has readers. Free, and it costs nothing to run.
* The author generates and the editor approves. A queued draft can be sent for review to whoever holds the new `draftforge_review_drafts` capability — Administrator and Editor by default — who can approve and publish, approve as a draft, or send it back with a note. Both ends are recorded on the row, a reviewer is e-mailed at most once an hour however many drafts arrive in it, and a draft still waiting on that answer is never published by an automatic run.
* The Queue tab now opens for `publish_posts` instead of `manage_options`, so an author can reach their own work — and the administrator-only buttons on it are drawn only for an administrator, rather than rendering for everybody and answering 403 on the click. A Contributor is still kept out: the tab carries every draft on the site with its cost and its report.
* Draft Forge can read how you write. "Analyse my voice" takes up to five posts you actually published, describes your tone, sentence length and person, offers the summary for the Brand voice field rather than applying it, and folds the profile you keep into every later outline and draft (~2 credits per run). Saving the Settings form no longer throws that profile away.
* The whole pipeline is available from the command line: `wp draftforge mine`, `generate`, `refresh`, `gate`, `queue` and `credits`. Every command prints what the run will cost before it runs, the ones that spend refuse to without `--yes`, and every refusal exits non-zero — `gate` spends nothing and exits non-zero on a body the gate would hold, which makes it usable in a build.
* With the Pro add-on, the autopilot now stops itself instead of running until you notice: a weekly publish cap (1–14, 3 by default) that a scheduled run never exceeds no matter how many new posts per run you have configured, and a checkpoint after every 10 hands-off publications (configurable) that pauses further automatic publishing of new drafts until you confirm on the Schedule tab. Drafting and refreshes already live keep going while paused — the pause is on new posts going live on their own, nothing else.
* The Schedule tab shows the pause, the reason, a confirm button, and the calendar's forecast now draws the weekly cap as its own line and marks a week where the plan would cross it.
* An e-mail goes out once when the checkpoint engages, not again while it stays paused.
* Requires Draft Forge Pro 1.4.0 or newer. An older add-on has no checkpoint, cap or "Stop all" to read; this release is the first core to call for them, so a pre-1.4.0 add-on is now reported the same way a too-old one always has been — absent, not fatal.
* A Collection tab: choose which published posts you actually want kept current, up to 100 at a time, with an owner and a next-review date on each. That list is the scope of every maintenance task below — nothing outside it is read, fetched or rewritten. Adding, removing, and assigning an owner or a date are open to Administrator and Editor; the 100-post ceiling keeps the list readable and applies the same way with or without the Pro add-on.
* Allowed sources per tracked post: up to five URLs — a documentation page, a changelog, a feed — that a post is maintained against. Draft Forge reads them on a schedule, at most once every 12 hours each, over plain http/https only, never following a redirect into a private address, with a one-megabyte and fifteen-second limit and the text cached so a change can be described. A source that cannot be read says why — source unavailable, paywall, removed, or asks not to be read — with the date its current state began, beside the post and again in a list of its own. Text read from a source is quoted DATA when it reaches the model, inside a fence, behind an instruction not to obey anything written in it. Free.
* Maintenance tasks, and the end of "old means rewrite". Three things now put work on the Queue tab: a source that changed, a review date that arrived, and a decline report you imported (paste a CSV of URLs with clicks over two periods). Each task says what changed, where that is known from, which blocks of the post mention something out of the change — a word match offered as possibly affected, not a verdict — and how many blocks it did not touch. Two answers: rewrite with AI, or no change needed. The age of an article raises no task at all, and with the Pro add-on the autopilot's refresh half now takes only these tasks instead of scanning for the oldest posts on the site. Free.
* **Behaviour change with the Pro add-on:** scheduled runs used to refresh the oldest published posts on the site. From this release they refresh the maintenance tasks above, oldest task first, and only for posts in your collection. A site with an empty collection gets no refreshes from a scheduled run — add the posts you want kept current, and the "Consider posts stale after" setting on the Schedule tab is gone with the behaviour it configured. The Topics tab's own "Scan stale posts" button is unchanged and still lists old posts as a hint.

= 1.2.0 =
* An editorial calendar. A month grid of the drafts and topics you have planned, drawn in your site's own timezone and week, with a rail beside it for everything still waiting for a date. Drag a card onto a day or type the date into its field — both do the same thing, and both work without a mouse.
* A planned draft can be handed to WordPress for a date of your choosing. It is the same Approve you already had, a few days later; a date in the past is refused, because WordPress would publish it immediately.
* A queue row now follows its post. A draft published from the block editor, or by WordPress on its own date, used to leave the Queue tab offering to publish an article that had been live for a month — and the handoff to Rank Forge and Lang Forge never ran for it. Both now happen exactly once, however the post went live.
* Scheduled runs take the oldest topic first, which is what this plugin has claimed since 1.0.0 and has never done: the list was read newest-first, so a backlog longer than one run's allowance was never reached at all. A topic you dated in the calendar comes ahead of an undated one on its day, and is left alone before it.
* With the Pro add-on installed and licensed, the calendar also draws what the automatic runs are on course to produce, in the order they will take your topics. The grid, the moves and the publication dates are all in this free plugin.
* Draft Forge now records what it spent. A Credits tab shows the month to date, the price list it is working from, and the last hundred charges — including the outline of a draft that died on its body call, which every earlier version charged for and none of them showed.
* Each Queue row carries what that post has cost so far, added up from the ledger in one query.
* A monthly credit ceiling, in credits, set by you. Above 0, an AI call that would cross it is refused before the request leaves your site, and the refusal says to raise the ceiling rather than to buy credits. It defaults to 0, meaning no ceiling, and the Pro add-on cannot lift it.
* Prices are read from the Forge API in the background instead of only from the list this version shipped with, so a repricing reaches the screen without a plugin update. A site that has never reached the API still quotes the shipped list.
* A charge the API did not itemise is marked "estimated" everywhere it is shown. A long draft can cost more than the list price, and a number we cannot stand behind now says so.
* A scheduled run that stops at the ceiling says which wall it hit, instead of reporting an empty wallet.
* Every pending refresh can be read before it is applied. "Review changes" draws the proposed rewrite against the original, per block and per word, and "Apply refresh" becomes an Accept you press after reading rather than instead of it. Rejecting a rewrite writes nothing to the post.
* A refresh now keeps the body it was a rewrite of. Reviewing against the live post meant an edit made in between showed up as a change the model proposed; the screen now compares what the model was handed, and warns when the post has moved on since.
* Accepting part of a rewrite and leaving the rest is not in this release. It needs a way to identify one block across two versions of a post, which the comparison does not carry; accept and reject are whole-document, deliberately.
* Requires Draft Forge Pro 1.2.0 or newer, and an older add-on is now switched off rather than left running. A pre-1.2.0 scheduled run cannot see the dates you set on the Calendar tab: it would draft — and with hands-off publishing on, publish — the article you planned for next month, and never reach the backlog you put at the top of it. Draft Forge says which version you have, which one you need, and that nothing already generated is affected.

= 1.1.0 =
* Automatic publishing left the free download. The free plugin no longer holds a licence check over its own generator: whether a passing draft goes live is a `draftforge/should_auto_publish` filter, and the Pro add-on answers it. Nothing in the free package decides that any more, which is what wp.org Guideline 5 asks for.
* A lapsed licence gets a card instead of a control that lies. With Pro installed but the licence inactive, the Schedule form used to render and save settings no tick would ever read, and "Run now" reported "gen 0 / refresh 0 / err 0" for a tick that had refused to run.
* A scheduled run that stops early says so — on the screen and on the button — instead of reporting a clean zero.
* The refresh cooldown starts when the credits are spent, so a post cannot be refreshed twice in a row for two charges.
* A refresh goes through the same quality gate and the same rewrite a first draft does.
* "Bulk topic queue" and "automatic refresh of stale posts" are no longer sold as separate Pro features. Both are what the scheduled tick already does — up to ten new drafts and ten refreshes per run — and neither name had any code asking about it.
* Deleting the plugin no longer takes your data with it. Draft Forge was the only plugin in the suite that wiped everything on uninstall unless a hidden option said otherwise; it now keeps by default and asks with a checkbox, like the rest.
* Requires Draft Forge Pro 1.1.0 or newer. An older add-on answers neither filter, so automatic publishing stays off; Draft Forge now says so instead of leaving it silently broken.

= 1.0.2 =
* Suite handoffs reach the plugins they were written for: the focus keyword now lands in the key Rank Forge reads, and posts generated before this release are migrated on upgrade.
* Handing published posts to Lang Forge for translation is now an opt-in checkbox with its credit cost on the label — it used to be silent.
* Every screen quotes its credit cost from the API price list, including the Schedule tab's manual tick.
* Auto-publish is marked as a Pro capability on the Settings screen instead of saving a checkbox that did nothing.

= 1.0.1 =
* Fixed a fatal on the Schedule screen for sites without the Pro add-on — it now shows what Pro adds instead of dying.

= 1.0.0 =
* Initial public release. Topic mining, AI draft generation, stale-content refresh, queue, and quality filter.

== Upgrade Notice ==

= 1.4.1 =
If you run Draft Forge Pro, update it to 1.4.0 or newer: an older add-on is switched off whole rather than left running, so its features stop until you do. Nothing already written is touched.

= 1.4.0 =
Needs Draft Forge Pro 1.4.0 — the floor 1.3.0 set, not raised again here. If you run Draft Forge Pro, update it to 1.4.0 or newer: an older add-on is switched off whole rather than left running, so its features stop until you do. Nothing already written is touched. Adds your queue to the Forge Suite dashboard's first screen: what was published, what is waiting for you, and what stopped.

= 1.3.1 =
Needs Draft Forge Pro 1.4.0 — the floor 1.3.0 set, not raised again here. If you run Draft Forge Pro, update it to 1.4.0 or newer: an older add-on is switched off whole rather than left running, so its features stop until you do. Nothing already written is touched. Also: new product icon and admin logo.

= 1.3.0 =
The gate gains a fifth check that reads the draft instead of measuring it, and names the sentence it objects to. An author can now hand a draft to an editor before anything goes live. "Analyse my voice" reads your own published posts and writes later drafts to what it finds. The whole pipeline works from WP-CLI, printing every price before it spends. And a weekly publish cap plus a checkpoint pause the autopilot's hands-off publishing — not drafting, not refreshes — until you confirm on the Schedule tab. If you use Pro, update it to 1.4.0 or newer at the same time: an older add-on has no cap, checkpoint or "Stop all" to read, so this release reports it as it would any too-old add-on rather than calling a method it does not have.

= 1.2.0 =
Adds a Credits tab with the full spend history, per-post costs on the Queue, an optional monthly credit ceiling you set yourself (0, no ceiling, by default), and a review screen that shows what a refresh would change before you accept it. Nothing you already had changes price. If you use Pro, update it to 1.2.0 or newer at the same time: an older add-on's scheduled runs ignore the dates you set on the new Calendar tab and draft your newest topic instead of your oldest, so this release switches an older add-on off until you do. Nothing already generated is affected and your settings are kept.

= 1.1.0 =
Automatic publishing moves out of the free download into the Pro add-on's own filter: if you use Pro, update it to 1.1.0 or newer at the same time, or hands-off publishing will stay off. A run that stops early now says why, and the refresh cooldown starts when the credits are spent.

= 1.0.2 =
Fixes the Rank Forge keyword handoff (and repairs posts generated before it), makes the Lang Forge translation handoff opt-in, and corrects the credit costs shown before every AI action.

= 1.0.1 =
Fixes a fatal error on the Schedule screen for Free-only sites. Upgrade recommended.

= 1.0.0 =
Initial release.
