Skip to content

PersonaWriter 1.2.0: merge Style Forge features - #1

Merged
moustafarhat merged 2 commits into
mainfrom
merge-style-forge
Sep 27, 2026
Merged

moustafarhat merged 2 commits into
mainfrom
merge-style-forge

Conversation

@moustafarhat

@moustafarhat moustafarhat commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

PersonaWriter becomes the one current version of the style skill: it keeps everything from 1.1 (Quick mode, French/Spanish/Portuguese/Italian word lists, CJK in characters, abbreviation-aware splitting, per-metric tolerances) and adds what the separate Style Forge copy had.

What's new

  • compare prints a 0-100 similarity score and the three most important fixes; exits 1 below 70. The 1.1 tolerances and noise floors are kept.
  • check counts signature-move dosage and never-list hits from the generated skill's references/markers.json (Arabic matched through diacritics and alef/ya variants).
  • overlap flags passages copied verbatim from the source or anchors (CJK counted in characters).
  • --json output for compare, check, overlap.
  • Cleaning before measuring: Markdown, code, HTML, URLs, front matter, and hard-wrapped PDF/e-book lines.
  • validate.py: quality gate for a generated skill, including a copy check against the source. Reads CRLF files; accepts ES/FR/IT section names.
  • package.py: validates and zips a skill into an installable .skill file.
  • scaffold.py: starter markers.json (never overwritten on re-runs), sample-exists check.
  • SKILL.md: Profile only mode, Update mode also refreshes markers/anchors and works on skills built elsewhere, intake cleanup and one-voice-per-skill rule, manual path without code, 70+ score target, validate + package step.
  • Generated-skill template: markers.json section, three-step drift check, "Rewriting a draft".
  • Version bumped to 1.2.0 in both manifests; CHANGELOG and README updated.

Behaviour change

Slugs must now be ASCII (a-z0-9-, max 64). 1.1 accepted Arabic letters, but skill names must be ASCII, so such skills would fail to install. Transliterate instead (e.g. nahj-hikayat-writer).

Tests

python -m unittest discover tests: 36 pass locally (19 existing + 17 new in tests/test_checks.py: cleaning, scoring, markers, overlap incl. CJK, scaffold/validate/package end to end, CRLF, copy detection).

Also adds an Example section to the README pointing to arabic-critic-essay-writer, a real skill built with PersonaWriter, with an example essay and its check results.

Also adds a Built with PersonaWriter? Share it section (README + CONTRIBUTING) inviting people to add their skills and outputs, and links the long-form example «infinite regress, from Zeno to Gödel».

After merge, push tag v1.2.0 to publish the release zip.

🤖 Generated with Claude Code

- style_stats.py: similarity score + top fixes in compare, new check
  (markers dosage / never-list) and overlap (copy detection) commands,
  --json output, exit codes, Markdown/URL/hard-wrap cleaning
- New validate.py (quality gate) and package.py (.skill builder)
- scaffold.py: starter markers.json, sample checks, ASCII slug <= 64
- SKILL.md: Profile only mode, broader Update mode, intake rules,
  manual path without code, 70+ score target, validate/package step
- Template: markers.json section, three-step drift check, rewriting
- Tests for the new checks, README, CHANGELOG, version bump to 1.2.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@moustafarhat
moustafarhat merged commit 7c86ea2 into main Sep 27, 2026
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant