skills-marketplace/plugins/doc-help/skills/ghost-writer/references/calibration.md
Michał Kopeć c9f6186b4b Restructure plugins into doc-help, common, cascade-knowledge-base bundles
Consolidates ghost-writer/resolve-todos/tldr-this into doc-help,
hr-manager/interview into common, and the ckb-*/meeting-notes/meeting-prep/quiz
skills into cascade-knowledge-base (renaming the latter three to ckb-meeting-notes,
ckb-meeting-prep, ckb-quiz for naming consistency). Updates marketplace.json and
README.md to match the new plugin set.
2026-07-16 16:44:54 +02:00

5.7 KiB

Style calibration flow

Run this when the user says "calibrate my writing style", "tune my style", "learn how I write", "update my profile", or similar - whether or not a profile already exists (see "Re-calibration" below for the existing-profile case).

This is the full, deliberate interview. For a single preference or sample the user mentions in passing during a normal rewrite - not a request to calibrate - use the lighter "Picking up style signal outside calibration" flow in SKILL.md instead: update just the relevant field, don't run the full question set.


Purpose

Ask 4-5 targeted questions to extract the user's writing style, then write the results to style-profile.md. The user should be able to do this conversationally without editing any files.


How to run it

Ask questions one at a time. Wait for each answer before asking the next. Do not batch them.

Question 1 - source material (most important)

Ask: "Do you have any documents you've written yourself - emails, reports, blog posts, notes? You can give me file paths, paste text directly, or both. This is the most useful input."

If they provide file paths:

Read each file. Supported formats:

  • .md and .txt - read directly with the Read tool
  • .pdf - read directly with the Read tool
  • .docx - extract text using:
    python3 -c "from docx import Document; doc = Document('PATH'); print('\n'.join(p.text for p in doc.paragraphs if p.text.strip()))"
    
    If python-docx is not installed, ask the user to export the file as PDF or paste the text.

Read all provided files before moving to extraction. For large files (over 1,000 lines), read the first 200 lines and the last 100 lines - the opening and closing sections of a document show the most voice.

Style extraction - run on all documents combined:

After reading, extract the following. Be specific - note actual examples, not just categories.

  1. Sentence length - estimate the average word count per sentence. Are there frequent short sentences (under 8 words) used for emphasis?
  2. Contractions - does the writer use "it's / don't / can't / we're" or formal "it is / do not / cannot / we are"?
  3. Fragments - does the writer use deliberate sentence fragments? Cite an example if found.
  4. Sentence openers - what do sentences most often start with? Subject + verb? Time/place phrases? Questions?
  5. Signature phrases - any recurring expressions, transitions, or constructions the writer uses across multiple documents? List specific phrases.
  6. Vocabulary register - is the language technical, plain, formal, casual? Any domain-specific terms used consistently?
  7. Paragraph length - short (1-3 sentences), medium (4-6), long, or mixed?
  8. Opinions - does the writer state positions directly ("this approach fails") or hedge ("this approach may have limitations")?
  9. Tone - what overall impression does the writing give? Name it in 2-3 words.
  10. Things to avoid - note any patterns that appear once or twice inconsistently - these may be habits the writer would want stripped (e.g. occasional passive voice in otherwise active writing).

If multiple documents were provided, note which patterns are consistent across all of them (stronger signal) versus which appear in only one (weaker signal, may be context-specific).

If they paste text directly:

  • Apply the same extraction as above, scaled to what's available
  • Note that a single paragraph gives weaker signal than a full document

If they have nothing to hand: Skip to question 2.

Question 2 - formality

Ask: "What are you mostly writing? Pick the closest: casual messages and notes / blog posts and reports / business documents and proposals / executive memos and client deliverables / formal or academic writing."

Map the answer to 1-5 (casual = 1, formal/academic = 5).

Question 3 - sentence style

Ask: "How would you describe your sentence style - short and punchy, long and flowing, or mixed depending on the point?"

Question 4 - things to avoid

Ask: "Any words, phrases, or habits you actively dislike in your own writing - things you want me to strip out even if they're not AI tells?"

Question 5 - opinions and hedging

Ask: "When you have a point of view, do you prefer to state it directly or keep the writing neutral?"


After collecting answers

Summarise back to the user in two sentences: "Based on what you've told me, you write [formality description], [sentence style], [opinion style]. I'll treat [sample phrases if any] as signature vocabulary to preserve."

Ask: "Does that sound right?"

Wait for confirmation or correction. Apply any corrections.

Then write the completed profile to style-profile.md. Overwrite the whole file - do not append. Use the template format from the existing style-profile.md, filling in the fields with the answers collected.

If documents were provided, record their file paths in the Source documents section and paste the most representative 1-2 paragraphs (best example of the writer's voice) into the Sample section.

If only pasted text was provided, paste the best 1-2 paragraphs into the Sample section and leave Source documents blank.

Tell the user: "Style profile saved to style-profile.md. The ghost-writer will use it automatically from now on. You can edit the file directly at any time, or re-run calibration with new documents to update it."


Re-calibration

If a style-profile.md already exists with content, tell the user: "You already have a style profile. I can update it with new answers, or replace it from scratch. Which would you prefer?"

If updating: read the existing profile first, apply changes to the relevant fields only, leave the rest unchanged. If replacing: run the full flow above and overwrite.