Community라이팅 & 에디팅github.com

product-on-purpose/writing-style-catalog

Composable writing instructions for AI agents on four orthogonal axes (Voice, Tone, Style, Format). Early/experimental. Install via the product-on-purpose marketplace.

writing-style-catalog란 무엇인가요?

writing-style-catalog is a Claude Code agent skill that composable writing instructions for AI agents on four orthogonal axes (Voice, Tone, Style, Format). Early/experimental. Install via the product-on-purpose marketplace.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add product-on-purpose/writing-style-catalog

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, affaan-m/seo, affaan-m/brand-voice · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Compose Writing Instruction

Compose a writing instruction by combining taxonomy entries from the Voice and Tone, Style, and Format axes.

Usage

/writing-style-catalog:writing-instruction-builder [voice=<id>] [tone=<id>] [style=<id>] [format=<id>] [topic=<text>] [audience=<text>]

All parameters are optional. If omitted, the skill picks sensible defaults.

Parameters

  • voice - Voice entry ID (e.g., pragmatic-architect, pastoral, columnist)
  • tone - Tone entry ID (e.g., candid, warm, matter-of-fact)
  • style - Style entry ID (e.g., problem-solution, devotional-reflection)
  • format - Format entry ID (e.g., adr, blog-post-long-form, slack-message)
  • topic - The topic or subject to write about (optional, for a more concrete composed instruction)
  • audience - The intended audience (optional, defaults to general)

What the Skill Does

  1. Validates each provided entry ID against the taxonomy catalog
  2. Reads the llm_instruction_phrasing from each matching entry
  3. Assembles a composed instruction string in a fixed precedence order: voice, then tone, then style, then format
  4. Checks the selected entries against each other's relationship fields and warns on any conflict (without blocking)
  5. Returns the composed instruction ready to paste into any LLM prompt

Implementation

The composition is implemented by the helper script scripts/build-instruction.py in this skill folder. It reads the catalog from the taxonomy/ directory at the plugin root, so that directory ships with the plugin. The slash command takes key=value arguments; the script itself takes --flag value arguments. Run it directly to compose without the slash command, for example:

python scripts/build-instruction.py --voice pragmatic-architect --tone candid --format adr

Conflict-aware composition

The builder reads each selected entry's avoid_with and pairs_well_with relationships and reports on them, so a composition is a checked guarantee rather than a blind concatenation. The rules (see ADR 0016):

  • Conflicts are symmetric. A pair is flagged if either entry lists the other in avoid_with, so the warning never depends on which author recorded the link.
  • Warn, never block. A conflicting pair still composes (you may want a deliberate tension); the builder emits a warning and applies voice -> tone -> style -> format precedence so the higher-precedence axis leads.
  • Affirmations. A pairs_well_with match is surfaced as a confirming note.

The composed instruction prints to stdout; conflict warnings and affirmation notes print to stderr, so stdout stays a clean, pipeable prompt. For example, pairing the pragmatic-architect voice with the reverent tone (which it lists in avoid_with) still returns the instruction and prints:

warning: conflict - pragmatic-architect (voice) and reverent (tone) are marked avoid_with.
Composing anyway with voice -> tone -> style -> format precedence; expect tension.

Examples

Compose an ADR in pragmatic-architect voice with candid tone:

/writing-style-catalog:writing-instruction-builder voice=pragmatic-architect tone=candid format=adr

Compose a pastoral devotional:

/writing-style-catalog:writing-instruction-builder voice=pastoral tone=reverent style=devotional-reflection format=devotional-entry topic="The discipline of rest"

Available Entries

Run without arguments to see all available entries grouped by axis.

관련 스킬

steipete/notion

Notion CLI/API for pages, Markdown content, data sources, files, comments, search, Workers, and raw API calls.

community

affaan-m/seo

Audit, plan, and implement SEO improvements across technical SEO, on-page optimization, structured data, Core Web Vitals, and content strategy. Use when the user wants better search visibility, SEO remediation, schema markup, sitemap/robots work, or keyword mapping.

community

affaan-m/brand-voice

Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows. Use when the user wants voice consistency without generic AI writing tropes.

community

affaan-m/crosspost

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

community

affaan-m/x-api

X/Twitter API integration for posting tweets, threads, reading timelines, search, and analytics. Covers OAuth auth patterns, rate limits, and platform-native content posting. Use when the user wants to interact with X programmatically.

community

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

community