User Story Writer
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
Helps engineering managers write messages, announcements, and stakeholder updates that land well — produces a 3-Step Writing Framework (Prepare / Write Simply / Run a Garbage Collector), the Async…
$ npx skills add manager-dot-dev/manager-skills --skill written-communication -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install manager-dot-dev/manager-skills written-communication --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/manager-dot-dev/manager-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/written-communication .claude/skills/written-communication && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "written-communication" agent skill from https://github.com/manager-dot-dev/manager-skills/tree/main/skills/written-communication into .claude/skills/written-communication/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "written-communication", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/manager-dot-dev/manager-skills/tree/main/skills/written-communicationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add manager-dot-dev/manager-skills --skill written-communication -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install manager-dot-dev/manager-skills written-communication --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/manager-dot-dev/manager-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/written-communication .agents/skills/written-communication && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "written-communication" agent skill from https://github.com/manager-dot-dev/manager-skills/tree/main/skills/written-communication into .agents/skills/written-communication/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "written-communication", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add manager-dot-dev/manager-skills --skill written-communication -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install manager-dot-dev/manager-skills written-communication --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/manager-dot-dev/manager-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/written-communication .cursor/skills/written-communication && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "written-communication" agent skill from https://github.com/manager-dot-dev/manager-skills/tree/main/skills/written-communication into .cursor/skills/written-communication/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "written-communication", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/manager-dot-dev/manager-skills.git --path skills/written-communication--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add manager-dot-dev/manager-skills --skill written-communication -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install manager-dot-dev/manager-skills written-communication --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/manager-dot-dev/manager-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/written-communication .gemini/skills/written-communication && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "written-communication" agent skill from https://github.com/manager-dot-dev/manager-skills/tree/main/skills/written-communication into .gemini/skills/written-communication/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "written-communication", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install manager-dot-dev/manager-skills written-communicationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add manager-dot-dev/manager-skills --skill written-communication -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/manager-dot-dev/manager-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/written-communication .github/skills/written-communication && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "written-communication" agent skill from https://github.com/manager-dot-dev/manager-skills/tree/main/skills/written-communication into .github/skills/written-communication/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "written-communication", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add manager-dot-dev/manager-skills --skill written-communication -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install manager-dot-dev/manager-skills written-communication --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/manager-dot-dev/manager-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/written-communication .opencode/skills/written-communication && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "written-communication" agent skill from https://github.com/manager-dot-dev/manager-skills/tree/main/skills/written-communication into .opencode/skills/written-communication/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "written-communication", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
written-communicationHelps engineering managers write messages, announcements, and stakeholder updates that land well — produces a 3-Step Writing Framework (Prepare / Write Simply / Run a Garbage Collector), the Async…
Written Communication is an agent skill from manager-dot-dev/manager-skills. Helps engineering managers write messages, announcements, and stakeholder updates that land well — produces a 3-Step Writing Framework (Prepare / Write Simply / Run a Garbage Collector), the Async Re-Explanation Trap (calling out missed messages), and the Compression/Decompression model for diagnosing why messages are misunderstood. Use when the user says "draft a message," "write an announcement," "communicate this change," "how do I word this," "message for my team," "write an update," or "how do I communicate…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/sources.md`).
It sits in Product & Project Management. The repository describes itself as: Skills for engineering managers. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c47ebc7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Written Communication loads about 2.1k tokens when it runs, and up to ~2.3k if it reads all its reference files. Until then it costs about 161 tokens; SKILL.md has 1,147 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from manager-dot-dev/manager-skills at commit c47ebc7, republished under its MIT licence (© manager-dot-dev). 1,147 words, ~2,132 tokens.
.claude/skills/written-communication/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Check for EM context first. If .agents/em-context.md exists, read it. If a person is mentioned, check .agents/reports/[name].md.
If .agents/em-context.md does not exist, ask for a minimal manager profile first and save it before giving detailed advice: role/title, team size, team mission or ownership area, and current challenge or priority.
If a specific person is central to the conversation and .agents/reports/[name].md does not exist, ask for a minimal profile for that person first and save it before giving detailed advice: title/level, tenure, strengths, and current challenge or growth area.
.agents/em-context.md or .agents/reports/[name].md automatically. Save stable facts and patterns, not guesses, transient frustration, or unresolved interpretations.Keep the first answer concise and useful. Do not dump the whole framework unless the user asks for depth.
Default to:
When helping with written communication, draft the actual message:
If the user asks for wording, put the draft before the explanation.
Writing code for machines is predictable — you know the language, version, and libraries. Writing for people isn't: the same message lands completely differently depending on who reads it. This framework reduces that gap.
Before writing a single word, answer three questions:
Why are you writing? What triggered this message? Make sure the reason is in the message if it matters. Also: if you're writing while frustrated, stop. The goal of most messages isn't to win an argument — it's to get a result. Understanding your own intent often causes you to completely rewrite the message.
What do you want to achieve? Be specific. "I want my team to follow the new deployment rule" is a goal. "I want to communicate about deployments" is not. If you can't state the goal, the message won't have one.
Who is your audience? Different groups need different vocabulary and depth:
The more you know about your audience, the more you can anticipate misunderstanding before it happens.
Write the way you speak. Simple words carry the same meaning as complex ones, with less cognitive load on the reader. Complex sentences aren't a sign of intelligence — they're a sign that the writing wasn't edited.
Specific rules that help:
Before sending: remove every word that doesn't add information. Shorter messages get read. Longer messages get skimmed, misread, or ignored.
Example:
"We are changing the current rule for merging our pull requests: you now need at least one approval to merge your changes, instead of two approvals — we trust you, and we want to move our things a bit faster."
After the garbage collector:
"We are changing the rule for merging pull requests: you need one approval, instead of two — we trust you, and we want to move faster."
Same message. Less friction.
For messages with significant consequences — a policy change, a team restructure, a difficult announcement — ask someone from your target audience to read it before you send. You'll catch misunderstandings before they reach everyone.
Don't aim for perfection. A clear, timely message is better than a perfect delayed one.
The most damaging Slack pattern is not bad grammar or long messages — it is calling out when someone missed a prior message: "as I already said," "I clearly wrote above," "I explained this last week."
The recipient feels humiliated. Repeat exposure destroys working relationships. The root cause is a false assumption: that because you wrote something clearly, the other person read and processed it the same way.
A corrective mental model: assume the other person has ten times as many active threads as you do. This reframes their miss as expected, not negligent — and produces two improvements: you write more concise, context-complete messages upfront, and you respond to misses with patience rather than public correction.
If a pattern of missed messages becomes a systemic problem, address it directly and privately, never in-thread.
All communication is lossy. The speaker compresses rich internal experience or technical context into transmittable language. The listener decompresses it through their own lens. The received message is never identical to the sent one.
Two failure modes follow:
Compression skill means finding the minimum set of words that reliably produces an "aha" moment in the specific listener — not the most complete explanation, but the most efficient one for that audience. This applies to feedback, technical proposals, and stakeholder updates.
Decompression skill means actively working to receive what was actually meant, not what you expected to hear. The more confident you feel you understood, the more likely you are wrong.
A calibration tool: after delivering a message, ask the other person to reflect back what they heard. The gap between your intent and their summary is your compression error. Technical managers are often weakest here — precision in code does not transfer to precision in communication.
If the user asks where a framework came from or wants more context on any topic in this skill — read references/sources.md.
feedback — Specific principles for written and verbal feedback deliverymanaging-yourself — Communication finesse with senior leadershipworking-with-pm — Stakeholder communication is central to the PM–EM relationshipinfluence — Written communication as a tool for building organizational influence© manager-dot-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/written-communication of manager-dot-dev/manager-skills.
Open the folder on GitHubat commit c47ebc7
Written Communication next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Written Communication this skillmanager-dot-dev/manager-skills | 114 | — | ~2.1k | Automated safety check: Pass | MIT | |
| User Story Writerdeanpeters/Product-Manager-Skills | 7.2k | 2 repos | ~2.9k | Automated safety check: Pass | Custom licence | |
| Game Changing FeaturesopenstatusHQ/data-table-filters | 2.3k | 3 repos | ~2.1k | Automated safety check: Pass | MIT | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Convex Create Componentspokvulcan/poker-planning | 114 | 8 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Self Improving Agentfarm-fe/farm | 5.6k | 2 repos | ~3.3k | Automated safety check: Notes | MIT |
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
openstatusHQ/data-table-filters
Find 10x product opportunities and high-leverage improvements.
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
spokvulcan/poker-planning
Builds reusable Convex components with isolated tables and app-facing APIs.
farm-fe/farm
A universal self-improving agent that learns from ALL skill experiences.
garrytan/gstack
Builds a weekly engineering retrospective from git history: commit counts, per-person contributions, work patterns and code quality numbers over a chosen window.
manager-dot-dev/manager-skills
Score an Engineering Manager's coverage across all 12 cells of the EM Grid based on their calendar and Slack.
manager-dot-dev/manager-skills
Foundation skill for engineering managers. An agent skill from manager-dot-dev/manager-skills.
manager-dot-dev/manager-skills
Prepares agendas, diagnoses struggling 1:1 relationships, and gives frameworks for running effective 1:1 meetings with direct reports.
manager-dot-dev/manager-skills
Explains business financial terms and frameworks for engineering managers — produces term definitions (ARR, COGS, CAC, LTV, gross margin, burn rate, EBITDA, AARRR), translation formulas for making…
manager-dot-dev/manager-skills
Helps engineering managers support direct report growth — produces a stage-by-stage model of engineering impact (Circles of Influence), a framework for non-linear career planning (Tarzan Method)…
manager-dot-dev/manager-skills
Guides managers out of the bottleneck role — provides the Team Rep pattern, Epic Ownership model, Task-Relevant Maturity framework, kingdom ownership, and three-layer assignment strategy.
Categories
Helps engineering managers write messages, announcements, and stakeholder updates that land well — produces a 3-Step Writing Framework (Prepare / Write Simply / Run a Garbage Collector), the Async…. Written Communication is an agent skill from manager-dot-dev/manager-skills. Helps engineering managers write messages, announcements, and stakeholder updates that land well — produces a 3-Step Writing Framework (Prepare / Write Simply / Run a Garbage Collector), the Async Re-Explanation Trap (calling out missed messages), and the Compression/Decompression model for diagnosing why messages are misunderstood.
Written Communication fits situations like: the user says draft a message; write an announcement; communicate this change; how do I word this.
Run `npx skills add manager-dot-dev/manager-skills --skill written-communication -a claude-code`. Or copy the skill folder (skills/written-communication in manager-dot-dev/manager-skills) into .claude/skills/written-communication in your project. Claude Code loads it when a task matches its description.
Run `npx skills add manager-dot-dev/manager-skills --skill written-communication -a codex`. Or copy the skill folder (skills/written-communication in manager-dot-dev/manager-skills) into .agents/skills/written-communication in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add manager-dot-dev/manager-skills --skill written-communication -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/written-communication, .gemini/skills/written-communication, .github/skills/written-communication and .opencode/skills/written-communication in your project.
SKILL.md names no scripts, command-line tools or credentials: Written Communication is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Written Communication is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 158 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Written Communication: User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), Game Changing Features (openstatusHQ/data-table-filters, 2.3k stars), CCPM Project Management (automazeio/ccpm, 8.4k stars) and Convex Create Component (spokvulcan/poker-planning, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
manager-dot-dev (a GitHub organization) maintains it in manager-dot-dev/manager-skills, which has 114 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on May 9, 2026.
Source: manager-dot-dev/manager-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.