Install the Plugin
Writing Style Catalog ships as a Claude Code plugin. The recommended path is the Product on Purpose marketplace; a ZIP fallback covers the Claude.ai / Claude Desktop upload flow.
Prerequisites
Section titled “Prerequisites”- Claude Code for the marketplace path.
- Nothing else: the plugin is self-contained. The
writing-instruction-builderskill reads the catalog that ships inside the plugin, so there is no separate data download.
Option A - Product on Purpose marketplace (recommended)
Section titled “Option A - Product on Purpose marketplace (recommended)”Run these inside Claude Code:
/plugin marketplace add product-on-purpose/agent-plugins/plugin install writing-style-catalog@product-on-purposeYou add the marketplace by its repo path (product-on-purpose/agent-plugins) and install the
plugin by its marketplace identity (writing-style-catalog@product-on-purpose). Those differ
by design: the path is the address, the identity is the brand.
Update later with:
/plugin update writing-style-catalogOption B - Claude.ai and Claude Desktop (ZIP upload)
Section titled “Option B - Claude.ai and Claude Desktop (ZIP upload)”For clients that take a plugin as an uploaded archive:
- Download
writing-style-catalog-v<version>.zipfrom the Releases page. - Extract it. The archive root holds
.claude-plugin/,skills/, and thetaxonomy/catalog the skill reads. - Point your client’s plugin setup at
.claude-plugin/plugin.jsonin the extracted folder.
Verify it loaded
Section titled “Verify it loaded”Claude Code (Option A)
Section titled “Claude Code (Option A)”Confirm the skill resolves:
/writing-style-catalog:writing-instruction-builder voice=pragmatic-architect format=adrYou should get a structured prompt prefix back.
Claude.ai and Claude Desktop (Option B)
Section titled “Claude.ai and Claude Desktop (Option B)”These clients have no slash-command listing, so verify conversationally: ask Claude to “describe the pragmatic-architect voice entry from the writing-style-catalog plugin and quote its one_liner.” A correct install answers in the catalog’s own field language (a senior technical voice that leads with tradeoffs and names constraints explicitly); a missing or broken install answers generically or says it cannot find the entry. From here, the Compose an Instruction guide walks through reading and using the output.
Troubleshooting
Section titled “Troubleshooting”Keyed to the actual text you will see, so you can match on the error rather than on a description of it.
[ERROR] jsonschema and referencing are required. Run: pip install jsonschema referencing
Section titled “[ERROR] jsonschema and referencing are required. Run: pip install jsonschema referencing”tools/validate.py aborts on import when its two dependencies are missing. This is repo
development tooling, not part of the installed plugin, so you only hit it if you cloned the
repository to contribute:
pip install -r requirements-dev.txtInstalling the two named packages alone also works, but the requirements file pins the rest of the toolchain the checks assume.
python: command not found, or Windows opens the Microsoft Store
Section titled “python: command not found, or Windows opens the Microsoft Store”On Windows, python often is not on PATH even when Python is installed, and typing it can
open the Store instead. Use the launcher:
py -3 tools/validate.pypy -3 skills/entry-recommender/scripts/recommend.py --listEvery command in these guides that begins python works with py -3 substituted. If neither
resolves, Python is genuinely not installed; the scripts need 3.10 or newer for the
str | None syntax they use.
The slash command does not appear after installing
Section titled “The slash command does not appear after installing”/writing-style-catalog:... not autocompleting usually means the marketplace was added but
the plugin was not installed from it. Both steps are required:
/plugin marketplace add product-on-purpose/agent-plugins/plugin install writing-style-catalog@product-on-purposeIf you installed before a release and are missing something this page describes, update
rather than reinstalling: /plugin update writing-style-catalog. The listing tracks a
released tag, not main, so a change merged today is not installable until it is tagged and
the registry re-pinned.
Entry not found: voice/<id> (run --list to see valid voice ids)
Section titled “Entry not found: voice/<id> (run --list to see valid voice ids)”The id does not exist, or exists but is not stable. The recommender and the builder both
serve only stable and reference-quality entries, so a draft entry is invisible to them
by design. --list shows exactly what is available:
python skills/writing-instruction-builder/scripts/build-instruction.py --list{"found": false, "error": "unknown axis: <name>"}
Section titled “{"found": false, "error": "unknown axis: <name>"}”The axis argument takes the singular: voice, tone, style, format. Not voices, and
not the directory name.
build-instruction.py is missing expected symbol '<name>'; the two skills' versions may be out of sync
Section titled “build-instruction.py is missing expected symbol '<name>'; the two skills' versions may be out of sync”recommend.py loads the builder’s parser rather than duplicating it, and checks up front that
the symbols it needs are present. Seeing this means the two skills came from different
versions, which a partial copy of the repository or a hand-assembled install can cause. Reinstall
the plugin, or check library.json to see which versions the two components should be at.