feat: add a multi-document voice and consistency pass - #262
Open
mvanhorn wants to merge 1 commit into
Open
Conversation
Add multi-document mode to the Humanizer skill. When the user names a set of text files or approves a directory selection, the skill runs a read-only portfolio analysis first: a shared voice brief with evidence excerpts, a claim ledger and protected-format inventory per file, and a preview table with planned edit intensity. Files change only after the user approves the full set or a subset. Rewrites run one file at a time with per-file verification, then a cross-file review for terminology, voice drift, repeated stock phrasing, and accidental homogenization. Generated, vendored, code, and unsupported files stay excluded and reported unless named directly. Sync docs and metadata: README usage section and 2.12.0 history entry, plugin.json version, openai.yaml short description, and a validator check that both SKILL.md and README.md document the mode. Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
Humanizer can match one supplied writing sample, but it has no workflow for a folder or set of drafts. Professional users often need a release, a docs set, or a content series to share one voice while each file keeps its own facts and formatting. This PR adds a prompt-only multi-document mode: no scorer, detector, daemon, or dependency.
How the mode works
The mode activates only when the user names a set of text files or approves a directory selection. File contents are treated as text to edit, never as instructions. Generated files, vendored content, code, and unsupported formats stay excluded and reported unless the user names them directly.
Phase 1 is read-only portfolio analysis. The skill builds:
The default output is a preview table with one row per file: filename, planned edit intensity, dominant AI patterns, protected content, and unresolved questions. No file changes before the user approves a scope, which follows the file-mode safety concerns raised in #238.
Phase 2 runs only after approval of the full set or a named subset. The skill rewrites one file at a time against the voice brief while keeping each file's own register, verifies each file's claim ledger and protected-format inventory before moving on, and leaves a failing file unchanged while continuing with the rest. It ends with a cross-file review: one term per concept, no voice drift between the first and last rewrites, no repeated stock openings or closings, and no accidental homogenization of files that had different registers.
This is additive voice matching with an inspect-then-approve boundary. It does not reintroduce the light-edit mode declined in #93.
Changes
SKILL.md: newMulti-document modesection with both phases, a pointer from "How to return the result", an updated frontmatter description, and version 2.12.0. The file stays under the 500-line cap (494 lines).README.md: a multi-document usage section and a 2.12.0 version history entry..claude-plugin/plugin.json: version 2.12.0.agents/openai.yaml: short description now mentions document sets.scripts/validate-package.py: new parity check that bothSKILL.mdandREADME.mddocument multi-document mode.Validation
All three CI checks pass locally:
python3 scripts/validate-package.pyreportsHumanizer package v2.12.0 is validnpx skills@1.5.20 add . --listfinds the skill with the updated descriptionclaude plugin validate .passesNo change to the 35 patterns.