agentleFS
EndikaEndika/eskills/skills/comms/SKILL.md

comms

Skill0 starsChanged 56 days agoMITView on GitHub

Use when writing text that leaves this machine with a person on the other end — an email, a comment or issue on a repo I don't own, a follow-up to a maintainer or an institution, release notes, a reply to a review bot. Not for commits and PR bodies (standards) or UI copy (ux-bar).

9 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 5 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 9 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    One ask per message: If there are two, the second one gets ignored — send it later or drop it.

    line 34
  2. Distinctive:

    Don't post what the code already said: If a review bot's point is already fixed in the diff, report that to me in chat — adding a reply to …

    line 42
  3. Very specific:

    Never invent a reference: No filler #NN, no issue number, commit or release that I haven't checked exists.

    line 45
  4. Distinctive:

    Don't sound generated: Not to beat a detector — those don't work — but because the tells are all padding: copula avoidance ("serves as" for …

    line 62
  5. Distinctive:

    Every factual claim traced to something I checked — not to a plausible memory.

    line 73
  6. Distinctive:

    No paragraph that survives being deleted.

    line 74

“Common” is measured: kept by at least 6 in 10 of the 9 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

comms

Overview

My bar for outward text. The reader owes me nothing: not their attention, not a reply, not a merge. So the message has to be worth opening — short, specific, honest about what is and isn't true — and then it stops. Drafts are shown to me and sent by me. This skill never posts, mails or comments on its own.

When to use

  • An email, especially to an institution or someone who did me a favour.
  • An issue, PR description or comment on a repo I don't own.
  • A follow-up or ping to a maintainer, a researcher, a group.
  • Release notes, a catalog entry, anything a user reads to decide something.
  • A reply on a review-bot thread (Copilot, codex, CodeRabbit) in someone's PR.

What this skill does not own

One canonical owner per rule — this one links, it doesn't copy.

  • Commit messages, PR titles and bodies → eskills:standards.
  • UI strings and in-app copy → eskills:ux-bar.
  • Inclusive language, in every locale → eskills:standards, which is the single source for it. It applies to everything here too.

Rules

  • One ask per message. If there are two, the second one gets ignored — send it later or drop it. A message with no ask at all is fine; say so explicitly ("no need to reply").
  • One ping, then stop. A follow-up is one short message, once, without urgency manufactured for the occasion. Never a batch of pings across several people or repos on the same day; never a second nudge because the first got no answer. Silence is an answer.
  • Claim only what's verified, and name the limit in the same breath. "Sign recognition, with these limits" — never the capability I wish I had. An overclaim to a community that's tired of being promised things costs more than the whole message gains.
  • Don't post what the code already said. If a review bot's point is already fixed in the diff, report that to me in chat — adding a reply to someone else's PR is noise they have to read.
  • Never invent a reference. No filler #NN, no issue number, commit or release that I haven't checked exists. A wrong cross-reference notifies a stranger's thread.
  • Match the reader's language. Upstream open source is English. Someone who wrote to me in Spanish, Euskara, Galician or Catalan gets an answer in that language.
  • Guest register upstream. In a repo I don't own: describe the problem, offer the fix, accept the maintainer's call. No process lectures, no deadlines, no "any update on this?".
  • The last line carries information. A message ends on its ask or on its last fact. If I want something, the closing sentence names it; if I don't, the message stops on the final piece of information, and "no need to reply" is the only closing line worth keeping. An offer with no object — "let me know if there's anything else", "happy to check whatever you need" — is a placeholder where the ending goes, and upstream it reads as asking permission to exist. Offering a specific fix names its object and is an ask, not a placeholder.
  • No AI footers or trailers anywhere — same rule as commits, and it extends to emails, issues and comments.
  • Length is a courtesy. Lead with the point. If it needs scrolling, it needs cutting or a link to the detail.
  • Don't sound generated. Not to beat a detector — those don't work — but because the tells are all padding: copula avoidance ("serves as" for is), "not just X, but Y", trailing "-ing" clauses that analyse nothing, attribution to nobody ("experts argue"), inflated significance ("a testament to"), and closing pleasantries about the act of writing. The full watchlist, and the parts of it that don't apply to my voice, are in references/ai-tells.md. A PreToolUse hook re-checks the high-precision half of that list on every git commit / gh command and warns without blocking — it is a net, not a gate, and it stays silent on the words that carry real meaning in a real sentence.

Before it goes out

  1. Every factual claim traced to something I checked — not to a plausible memory.
  2. No paragraph that survives being deleted.
  3. Exactly one ask, or an explicit none.
  4. Would it still read fine forwarded to someone I didn't write it for?
  5. Shown to me in full. Sending, posting or emailing is my action, not the agent's.

Note on upstream mechanics

The PAT can't write to repos I don't own: no issue, no PR, no editing a body. So the deliverable there is the text, ready to paste, and the claim is "here's the draft", never "posted".

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.