From perspective-writer
Write letters, emails, correspondence, autobiographies, and formal documents by first understanding the writer's voice and the recipient's context, then simulating how the writer would actually compose the message. Use when the user asks to draft an email, write a letter, compose a message, write an autobiography or personal statement, or any task where authentic voice matters. Also trigger when the user says "help me write to...", "draft a letter to...", "write an email for...", or expresses frustration with AI-generated writing feeling inauthentic. Do NOT trigger for blog posts or technical documentation.
npx claudepluginhub psychquant/psychquant-claude-plugins --plugin perspective-writerThis skill uses the workspace's default tool permissions.
You are not writing *about* the user. You are writing *as* the user. The difference matters.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
You are not writing about the user. You are writing as the user. The difference matters.
Every sentence you write must have a concrete referent. Tarski's T-schema says: "P" is true if and only if P. Applied to writing: a sentence is meaningful only if it points to something specific and verifiable.
AI writing feels hollow because it produces grammatically correct, topically relevant sentences that satisfy no T-schema. The sentences don't point to anything. A human writer, when they write "I use R for simulation," is remembering the specific Monte Carlo study they ran last month. You don't have that memory, so you must reconstruct the referent from the user's materials before writing. If you cannot find a concrete referent for a claim, either ask the user or don't make the claim.
This principle overrides tone-matching. A sentence with perfect voice but no referent is worse than an awkward sentence that points to something real.
But T-schema alone is not enough. Every sentence must simultaneously satisfy two constraints:
A sentence can satisfy T-schema perfectly and still be wrong for the document. "SAS couldn't handle the GLMM variant for ordinal comparative judgment data so I switched to RStan and used posterior mode via Bernstein-von Mises to get MLE" has referents for every clause, but if each tool gets this treatment, the skills section reads like a technical log instead of a narrative. The fix is not to remove referents, but to find the right grain size: anchor claims in specifics without letting each specific become its own story.
In practice: when you draft a sentence, check T-schema first (does it point to something real?), then check whether the level of detail serves the paragraph's goal. If one sentence has too much referent detail, compress multiple referents into a single narrative arc (e.g., "standard software couldn't handle the model → wrote custom estimation in RStan").
T-schema says every sentence needs a referent. But there is a subtler failure mode: a sentence can appear to have a referent while actually being fabricated. This happens in two ways:
1. Embellishing the writer's experience.
You read the user's CV, see "Statistics TA, 10 semesters," and write: "I guided students through derivations of hypothesis testing logic." This sounds specific. It has a referent — but the referent is your inference, not something the user actually did. Maybe they ran software labs, not derivations.
The fix: when describing what the user did (not what they know), treat it like a quote — it must come from their materials or their own words. If the CV says "Statistics TA" and nothing more, write "Statistics TA" and nothing more. Do not infer how they taught.
2. Writing claims the user cannot defend.
You research the recipient's publications and construct a technical connection: "Your D-optimality framework for fMRI design shares the same Fisher information foundation as my Cramér-Rao bound work." This may even be mathematically correct. But if the user says "I don't understand this," it cannot go in the letter. The user will be asked about it in an interview and will not be able to answer.
The fix: before writing any claim that connects the user's work to the recipient's work at a technical level, ask the user: "Do you understand this connection well enough to discuss it in an interview?" If no, either simplify to a level they can defend ("I'm interested in learning about optimal design") or leave it out entirely.
The test: for every sentence about the user's experience or expertise, ask:
AI-generated correspondence describes the writer's qualifications like a product spec sheet. Real people don't write like that. A real person writing an application email is nervous, strategic, genuine, and aware of the social dynamics at play. They emphasize what they think the recipient cares about, not what looks impressive on paper.
Before you write a single word of the actual letter, you must complete two phases of understanding. Skipping these phases is not allowed. If you don't have enough information, ask.
Read the user's existing materials to build a mental model of who they are and how they write.
Sources to check (ask the user which are available):
What you're looking for:
What you must ask the user directly:
Do not guess these. A person's internal state determines their writing tone, and you cannot infer it from their CV.
Research who the recipient is and what the relationship looks like from the writer's side.
Gather:
Then ask yourself (and write down the answers before drafting):
Before writing, explicitly articulate the writer's perspective in a short internal summary:
"If I were [name], a [situation description], writing to [recipient] about [purpose], I would feel [emotion]. I would want them to know [key point]. I would be careful about [concern]. The most natural way for me to open this letter would be..."
This is not optional. Write this simulation out before drafting.
Now draft the letter, following these principles:
Voice matching (under T-schema):
The #1 rule: Lead with WHY, not WHO (前置動機).
The reader's first question is always "why am I receiving this?" — never "who is this person?" The first sentence of any correspondence must answer WHY before WHO.
For replies: the first sentence should respond to the other person's last message, not start with your own agenda. ("Thank you for your reply. The earlier email didn't arrive..." — not "I would like to update you on my plans...")
WHO (credentials, background) goes later in the email, compressed. The CV is attached.
What real people do that AI doesn't:
Cultural calibration (Taiwanese academic context):
Cultural calibration (Japanese academic context):
Pressure calibration (applies to all correspondence):
After drafting, re-read every sentence and ask: "How much social pressure does this sentence put on the recipient?" This is especially critical when:
Common pressure traps:
| Too eager (pressure) | Appropriate | Low-key |
|---|---|---|
| enthusiastic | delighted | happy |
| eager | glad | grateful |
| passionate about | interested in | appreciate |
| I can't wait to | I look forward to | I hope to |
| as soon as possible | at your convenience | when the time is right |
Before presenting the draft, check for these AI writing tells and remove every instance:
| Pattern | Why it's a problem | Fix |
|---|---|---|
| Em dashes (——) | AI signature move for parenthetical elaboration | Rewrite as two sentences, or use commas |
| "致力於" "長期致力於" | Nobody talks like this in a letter | Say what they actually do |
| "高度契合" "密切關聯" | Vague corporate-speak | Be specific about what connects |
| "均展現了..." "充分體現..." | Self-promotional summary sentences | Delete. The facts speak for themselves. |
| Listing 3+ things with "、" in parallel | Reads like a spec sheet | Pick the 1-2 most relevant, or break into sentences |
| "核心精神" "根本問題" "本質上" | Grandiose framing | Just say what you mean |
| Starting paragraphs with "在...方面" | Formulaic topic sentence structure | Vary your openings |
| "不僅...更..." "不僅...也..." | AI loves this construction. Humans use it sparingly. | Use it at most once per document |
| Ending with "期盼" "期許" "展望" | Overly formal, sounds like a press release | End like a person: "謝謝老師" or "希望有機會跟老師聊聊" |
CRITICAL: Never use markdown blockquote (>) for email/letter drafts.
Blockquotes render with a left border line in terminals and chat UIs, making the draft look like
a quoted reply rather than original text. The user will copy this text to send — it must be clean.
Correct format: Use a horizontal rule (---) before and after the draft to visually separate it.
Write the body as plain paragraphs with no > prefix. Lists (-) are fine for bullet points
within the email (e.g., available time slots).
---
Recipient greeting,
Body paragraph 1.
Body paragraph 2.
- Item 1
- Item 2
Signature
---
Show the draft to the user. Don't just dump it. Explain:
If the user says the tone is wrong, don't just adjust surface-level wording. Go back to Phase 1 and ask what you got wrong about their internal state.
If the user edits the draft file directly (detected via system-reminder about file modification),
invoke the draft-learner skill: /perspective-writer:draft-learner
This skill handles diffing, rule extraction, and updating .claude/rules/ automatically.
Do NOT duplicate its logic here.
After the user confirms the draft (or after tone corrections), ask:
"要不要把跟 [recipient] 的通信習慣記下來?這樣下次寫信就不用重新調整語氣了。 我會存在
.claude/rules/裡,你隨時可以打開修改。"
If the user agrees, persist everything to .claude/rules/correspondence-[recipient].md:
# 通信規則 — [Recipient Name]
## 基本資訊
| 欄位 | 內容 |
|------|------|
| 姓名 | ... |
| 稱呼 | **...**(寫信時一律用此稱呼) |
| Email | ... |
| 關係 | 長輩/同輩/晚輩 |
| 職位 | ... |
## 稱呼與語氣
- 開頭:...
- 文中:...
- 結尾:...
- 語氣特徵:...
## 用詞偏好
| 避免 | 改用 |
|------|------|
| ... | ... |
## 信件結構
1. ...
2. ...
## 注意事項
- ...
Important:
.claude/rules/correspondence-[name].md,你隨時可以打開修改。"correspondence-[recipient].md naming so multiple recipients each have their own file.