Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .claude/skills/microsoft-writing-style-guide/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 msbrettorg

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
395 changes: 395 additions & 0 deletions .claude/skills/microsoft-writing-style-guide/LICENSE-CONTENT

Large diffs are not rendered by default.

20 changes: 20 additions & 0 deletions .claude/skills/microsoft-writing-style-guide/NOTICE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Notices and attribution

This repository contains an unofficial community implementation of the
Microsoft Writing Style Guide. It isn't endorsed by Microsoft or Anthropic.

Microsoft is the source of the adapted Microsoft Writing Style Guide content:

* Source: [MicrosoftDocs/microsoft-style-guide-pr](https://github.com/MicrosoftDocs/microsoft-style-guide-pr)
* Pinned commit: [`c78a330b932812a342be2ebca0ec8bc3d01fbac2`](https://github.com/MicrosoftDocs/microsoft-style-guide-pr/commit/c78a330b932812a342be2ebca0ec8bc3d01fbac2)
* Content license: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0/)

The adapted content has been modified by consolidating pages, resolving
include payloads, removing build frontmatter, and adding a term index,
routing, a source manifest, evaluations, and validation.

The full upstream content license is included in
[`LICENSE-CONTENT`](LICENSE-CONTENT). The repository's MIT license applies
only to original code, metadata, scripts, and other original contributions;
Microsoft-derived reference content and adapted guide text remain under
CC BY 4.0.
197 changes: 197 additions & 0 deletions .claude/skills/microsoft-writing-style-guide/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
---
description: Use when writing, rewriting, or reviewing Microsoft-branded or customer-facing content, or resolving Microsoft terminology. Covers voice, grammar, punctuation, capitalization, UI text, procedures, accessibility, bias-free and global-ready language, developer content, and the complete Microsoft A-Z word list.
license: MIT AND CC-BY-4.0; see LICENSE, LICENSE-CONTENT, and NOTICE.md
metadata:
github-path: plugins/microsoft-writing-style/skills/microsoft-writing-style-guide
github-pinned: d9227efa6c984c13260e3bf869f4b6132cfb3c19
github-ref: d9227efa6c984c13260e3bf869f4b6132cfb3c19
github-repo: https://github.com/msbrettorg/microsoft-writing-style
github-tree-sha: 73d4edd9337016a22a9918497b1ba377449894fb
name: microsoft-writing-style-guide
---
# Microsoft Writing Style Guide

## Purpose

Apply the Microsoft Writing Style Guide to documentation, UI text, error
messages, notifications, marketing copy, emails, slides, procedures, developer
content, and conversational experiences.

Microsoft voice is **warm and relaxed, crisp and clear, and ready to lend a
hand**. Use bigger ideas and fewer words. Write with less head and more heart.

This skill is a pinned, offline reference snapshot. See
`references/source-manifest.md` for its authoritative source commit, coverage,
and synchronization date.

## When to use

Use this skill to:

* Draft content in Microsoft voice.
* Rewrite content for clarity, brevity, accessibility, or global readiness.
* Review content for Microsoft style violations.
* Resolve a specific term, spelling, capitalization, or UI-language question.
* Check procedures, developer documentation, bot content, or error messages.

Don't use it to:

* Rewrite legal or contractual text without legal review.
* Change code identifiers, API syntax, commands, URLs, or literal UI text.
* Replace a product's documented naming conventions.
* Impose Microsoft voice on content for another brand.

## Choose a mode

| Mode | Use when | Result |
|---|---|---|
| **Term lookup** | The user asks which word, spelling, capitalization, or interaction verb to use | Preferred form, concise guidance, example, and source heading |
| **Write** | The user needs new Microsoft-style content | Publication-ready content that follows the relevant rules |
| **Rewrite** | The user provides content to improve | Revised content plus a brief list of material changes |
| **Review** | The user asks for an audit, critique, or compliance check | Severity-ranked findings with exact fixes; no invented issues |

If the user requests more than one mode, do them in this order: **review,
rewrite, write**. Use term lookup whenever another mode encounters a
questionable term.

## Source precedence

Use the most specific applicable guidance:

1. Exact A-Z term entry.
2. Relevant term collection.
3. Topic guidance and content-type rules.
4. Checklist.
5. Quick-reference guidance in this file.

Match literal UI, code, and product names when the task requires it. If two
rules appear to conflict, prefer the more specific rule and explain the
exception only when it affects the result.

For a rule that may have changed after the synchronization date, verify the
live [Microsoft Writing Style Guide](https://learn.microsoft.com/style-guide/)
when live access is available. Otherwise, disclose the snapshot date if
freshness is material to the answer.

## Load only what you need

Never load the full corpus by default.

### Term lookup

1. Search `references/term-index.tsv` for the canonical term.
2. Load the routed A-Z file and read the complete matching `###` section.
3. If the term isn't indexed, search the applicable term collection.
4. Return the preferred form, rule, example, and reference heading.

Example search:

```bash
rg -i '^plugin\t|^plug-in\t' references/term-index.tsv
```

### Topic routing

| Content or question | Load |
|---|---|
| Fast pre-publication scan | `references/checklists.md` |
| Grammar, voice, person, or sentence structure | `references/grammar-and-parts-of-speech.md`, `references/word-choice.md` |
| Punctuation | `references/punctuation.md` |
| Capitalization, acronyms, or numbers | `references/numbers-acronyms-capitalization.md` |
| Typography or text treatment | `references/text-formatting.md` |
| Accessibility or inclusive language | `references/accessibility-and-bias-free-communication.md` |
| Localization or worldwide audiences | `references/global-communications.md` |
| Content strategy, search, responsive content, or URLs | `references/content-planning-and-process.md` |
| Headings, lists, tables, procedures, or UI interactions | `references/scannable-content-and-procedures.md` |
| APIs, code examples, reference docs, bots, or virtual agents | `references/developer-and-bot-content.md` |
| Category terminology or symbols | `references/term-collections-numbers-symbols.md` |
| Keys and shortcuts | `references/keys-and-keyboard-shortcuts.md` |
| Exact word choice | `references/term-index.tsv`, then the routed `references/a-z-term-list-*.md` file |

## Apply the selected mode

### Term lookup

Return:

* **Use:** the preferred form.
* **Guidance:** the rule and important exceptions.
* **Example:** one correct example when useful.
* **Source:** the reference file and heading.

Don't infer a rule from spelling alone. Read the complete term entry.

### Write

1. Identify the audience, content type, intended action, and space constraints
from the request.
2. Load the smallest relevant reference set.
3. Draft the content with the important information first.
4. Check terminology, accessibility, global readiness, and the applicable
checklist.
5. Return the finished content. Mention assumptions only when they materially
affect the result.

### Rewrite

1. Preserve facts, intent, required terminology, placeholders, code, and
literal UI strings.
2. Fix explicit Microsoft-style violations.
3. Improve structure, clarity, brevity, and scanability without flattening the
meaning.
4. Return the revised content first.
5. Follow with a short **Material changes** list. Omit it when the user asks
for only the revised text.

### Review

Review the content type and audience before applying rules. Run the applicable
checklist, look up questionable terms, and deepen the review only in areas
that the quick scan flags.

Use these severities:

| Severity | Use for |
|---|---|
| **Blocker** | Accessibility or inclusive-language failures that exclude readers, or wording that changes required meaning |
| **High** | Explicit terminology, UI, procedure, voice, or capitalization violations that materially affect usability |
| **Medium** | Grammar, punctuation, formatting, consistency, or global-readiness issues |
| **Low** | Optional concision or polish that doesn't correct a clear violation |

For each finding, provide:

```markdown
### [Severity] Short finding

**Text:** "Exact problematic text"
**Fix:** "Exact replacement text"
**Rule:** Category and reference heading
**Why:** One concise explanation
```

Group repeated instances of the same issue. Omit empty severity sections. If
the content has no material issues, say soβ€”don't invent findings.

## Quick reference

| Rule | Guidance |
|---|---|
| Bigger ideas, fewer words | Cut every word that doesn't earn its place |
| Write conversationally | Use familiar words, contractions, and natural phrasing |
| Get to the point | Lead with the information or action customers need |
| Use sentence-style capitalization | Capitalize only the first word and proper nouns unless an exact name requires otherwise |
| Limit end punctuation | Omit periods and colons from most titles, headings, and short UI text |
| Use the serial comma | Write *Android, iOS, and Windows* |
| Use one space | Use one space after periods and colons; don't add spaces around em dashes |
| Prefer active, direct writing | Start with a verb; remove weak *you can* and *there is/are* constructions |
| Write for everyone | Use accessible, bias-free, people-first or preference-aware language |
| Write for the world | Avoid idioms, cultural assumptions, and ambiguous dates or measurements |

## Guardrails

* Don't alter technical meaning to satisfy a style preference.
* Don't replace exact UI text with the preferred generic term.
* Don't flag an exception as a violation.
* Don't claim factual, legal, security, or product accuracy from a style review.
* Don't load or quote large reference sections when a concise answer is enough.
* Cite the reference file and heading when explaining a disputed rule.
77 changes: 77 additions & 0 deletions .claude/skills/microsoft-writing-style-guide/evals/evals.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"skill_name": "microsoft-writing-style-guide",
"evals": [
{
"id": 1,
"prompt": "For Microsoft documentation, should I write plug-in, plugin, or add-in when describing an AI component that gives an agent access to external APIs?",
"expected_output": "Uses term lookup mode, routes through the term index to the plugin entry, recommends plugin as one word, preserves the distinction from add-in and add-on, and cites the reference file and heading.",
"files": []
},
{
"id": 2,
"prompt": "Review this security sentence for Microsoft terminology: Add the user to the whitelist and place unknown devices on the blacklist.",
"expected_output": "Flags whitelist and blacklist as explicit terminology violations, recommends allow list and block list as two words, provides exact replacement text, and cites the matching A-Z entries.",
"files": []
},
{
"id": 3,
"prompt": "Write a concise Microsoft-style error message for an invalid work email address. The required example format is someone@example.com.",
"expected_output": "Produces warm, direct, actionable UI text that explains the expected email format, avoids blame and jargon, and does not add unnecessary rationale.",
"files": []
},
{
"id": 4,
"prompt": "Rewrite this for Microsoft product documentation: There are a number of configuration options which you can utilize in order to optimize performance.",
"expected_output": "Returns the concise rewrite first, removes there are, you can, utilize, and in order to, preserves the meaning, and briefly identifies only the material changes.",
"files": []
},
{
"id": 5,
"prompt": "Review this heading and sentence: ## Configure Your New Account: You can click the Save button in order to continue.",
"expected_output": "Uses review mode, flags title-style capitalization, the trailing colon, two spaces, weak you can phrasing, click, unnecessary button naming, and in order to; groups related issues and gives exact fixes with severity and rule sources.",
"files": []
},
{
"id": 6,
"prompt": "Review this text and report only real Microsoft style violations: Select Save. The settings take effect immediately.",
"expected_output": "States that no material Microsoft style issues were found and does not invent low-value findings or rewrite already clear content.",
"files": []
},
{
"id": 7,
"prompt": "Rewrite this alt text guidance inclusively: The image shows a disabled person confined to a wheelchair. Click here to see it.",
"expected_output": "Applies accessibility and bias-free guidance, avoids pity or confinement language, uses preference-aware person or identity wording as context supports, replaces click here with descriptive language, and preserves only visually meaningful information.",
"files": []
},
{
"id": 8,
"prompt": "Make this globally ready: Our fall sale starts 10/11/26. Prices begin at $25 and setup is a piece of cake.",
"expected_output": "Removes the seasonal reference and idiom, replaces the ambiguous numeric date with an unambiguous month-name date, clarifies currency when audience context requires it, and cites global communications guidance.",
"files": []
},
{
"id": 9,
"prompt": "Rewrite this procedure step: Click on the Settings button, then click the Privacy tab, and check the Allow diagnostics checkbox.",
"expected_output": "Uses location-before-action structure and input-neutral verbs, avoids unnecessary UI element types, preserves literal labels in bold, and uses select or clear consistently with procedure guidance.",
"files": []
},
{
"id": 10,
"prompt": "Review an API reference that italicizes method names, rewrites parameter identifiers into friendly words, and changes the literal --force option to Force.",
"expected_output": "Protects code identifiers, syntax, and literal options from style rewriting, applies developer-content formatting guidance, and distinguishes prose improvements from technical tokens.",
"files": []
},
{
"id": 11,
"prompt": "Write a virtual-agent response for a failed payment that sounds helpful without saying Oops or blaming the customer.",
"expected_output": "Uses conversational bot guidance, gives the outcome and next action clearly, avoids Oops, excessive apology, blame, and unsupported explanations, and keeps the response concise.",
"files": []
},
{
"id": 12,
"prompt": "Audit and then rewrite this announcement: We are pleased to inform users that they can visit the admin page to execute setup. The page is required for all administrators.",
"expected_output": "Reviews before rewriting, distinguishes visit from required go to navigation, replaces execute with a clearer verb where appropriate, removes formal filler and weak can phrasing, preserves the requirement, and returns a concise rewrite plus material changes.",
"files": []
}
]
}
Loading