sentence-gap
Skill4 starsChanged 11 days agoApache-2.0View on GitHub
Always put a visibly wider gap between sentences in every human-readable reply and file. Applies on every turn — Cursor desktop, Cursor cloud, CLI, Grok, chat, commits, PRs, and docs. Follows Monet's portable protocol. Mechanism (owner ruling 2026-10-23, reaffirmed 2026-10-25): a real U+00A0 plus a normal space between sentences on every surface, with one exception, the chat panes of Claude Code (the Code tab) and MiniMax Code (the MiniMax Code pane), which take the entity plus a normal space; never two plain ASCII spaces, which collapse on rendered surfaces. Use whenever writing any prose a human will read.
- Commits and pushes
1 other project uses a version of this.
Adopted by
Most recently taken up by
- jaywedgeworth22/BotFleetword for word, first seen Nov 3, 2026
Other versions1 project uses a version of this.
Word for word · 1
- jaywedgeworth22/BotFleet★ 4100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository20 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .cursor/rules/merge-when-ready.mdcCursor rule
- apple-notesSkill
- board-opsSkill
- closeoutSkill
- codex-triageSkill
- deploy-verifySkill
- dns-and-registrarsSkill
- drive-grok-tuiSkill
- fleet-coordinationSkill
- fleet-infraSkill
- land-laneSkill
- mac-cleanupSkill
- owner-copySkill
- pickup-seatSkill
- secret-handoffSkill
- session-startSkill
- unstick-prSkill
- windows-releaseSkill
- phone-harnessSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
Put a visibly wider gap between sentences — after .
- Very specific: line 27
Do not add a gap after a non-terminal abbreviation (e.g., i.e., Dr., v1.2.3), inside a URL, email, filename, or a brand name containing a …
- Distinctive: line 51
If a surface strips U+00A0, leave the text as it is rather than switching to the entity, and report the surface in #Work-In-Progress.
- Very specific: line 119
Default to two literal ASCII spaces there, and do not use the  .
- Distinctive: line 141
When an instruction *appears* not to take effect, stop repeating the promise and diagnose the rendering layer between you and the reader — …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Sentence gap (portable — always on)
Shared
~/.claude/skills. Monet, Claude/Fable, and (when active) Renoir all load this directory. Do not treat the word Monet in examples as proof of your seat. PinAGENT_SEAT/AGENT_TAGfrom the logged-in account before Slack orboard --by:
- Monet →
MONET, NotesMonet,monet/,~/apps/<app>-monet- Claude / Fable →
CLAUDE, NotesClaude,claude/,~/apps/<app>-claude- Renoir →
RENOIR, NotesRenoir,renoir/,~/apps/<app>-renoirCursor, Grok, Grok Bot, Codex, AG, DeepSeek, Kimi, and Fx have their own skill dirs and must not take identity from here.
Source of truth: /Users/jay/Code/AI-Fleet-Coordinator/docs/SENTENCE-GAP-PORTABLE-SKILL.md
The block below is Monet's protocol, pasted verbatim. Follow it exactly. Do not weaken it. Cloud agents without the Mac filesystem still have the full protocol in this file.
Rule: two visible spaces between sentences
Put a visibly wider gap between sentences — after . ! ? when a new sentence
follows — in every piece of prose a human reads. Not just product copy: chat replies,
commit messages, PR titles and bodies, code comments, docs, tickets, Zulip posts, release
notes, design docs.
Do not add a gap after a non-terminal abbreviation (e.g., i.e., Dr., v1.2.3),
inside a URL, email, filename, or a brand name containing a period.
Current rule (owner ruling 2026-10-23, reaffirmed 2026-10-25) — one mechanism on every surface, and one exception
Jay, Fri, Oct 23: update the rule everywhere, so it is the same on every surface. Between sentences, write a real U+00A0 (no-break space) followed by a normal space. That covers chat replies, Zulip, GitHub PR and issue text and review comments, Linear, Slack, commit messages, repo docs and Markdown, skills, agent instructions, and UI copy, on every surface but the two chat panes named below.
- The one exception: the chat panes of Claude Code (the Code tab) and MiniMax Code (the
MiniMax Code pane). Those panes normalize a raw U+00A0 away and collapse two ASCII
spaces, so a chat reply there uses the
entity plus a normal space, outside code spans:End. Next.The MiniMax Code chat pane always takes the entity, never a raw U+00A0 and never two plain ASCII spaces. - Never write the
entity anywhere else. It shows up as literal text in squash-merge commits, plain-text email and many APIs. - Two plain ASCII spaces are not enough. Rendered surfaces (Zulip, GitHub, Linear, HTML, Markdown chat panes) collapse them to one.
- Generate the U+00A0 in the shell (the converter below, or
printf '\302\240') rather than typing it, because a model-typed U+00A0 can be normalized to a plain space. Check the bytes before you post. - In product-copy source, spell it per language: Swift
"\u{00A0} ", JS/TS strings"\u00A0 ", JSX text{'\u00A0'}plus a space or , HTML markup source , or a sharedSENTENCE_GAPconstant. Never in prose. - Code, identifiers and machine-readable config never get a U+00A0.
- If a surface strips U+00A0, leave the text as it is rather than switching to the entity, and report the surface in #Work-In-Progress.
This replaces every earlier per-surface rule: the entity in chat panes (2026-10-08, 2026-10-18) and on GitHub (2026-10-22), and two ASCII spaces in files, commits, terminals and untested surfaces (2026-10-20). The two chat panes named above are the one exception, reaffirmed by the owner on 2026-10-25. Where older text below disagrees, this section wins.
The catch that wastes everyone's time
Typing two literal spaces usually does nothing visible. HTML and most Markdown renderers collapse runs of whitespace to a single space. So the assistant "complies," the raw text really does contain two spaces, and the human still sees one. Both sides then argue about whether the instruction was followed.
The gap must survive the renderer between you and the reader. Which mechanism works depends on the surface, so pick by destination:
| Destination | Use | Why |
| Every surface — chat replies in any other pane, Zulip, GitHub PR and issue titles, bodies and comments, review comments, Linear, Slack, commit messages, repo docs and Markdown, skills and agent instructions, rendered product copy | a real U+00A0 plus a normal space | Owner ruling 2026-10-23: one rule everywhere. Two ASCII spaces collapse on rendered surfaces, and the entity shows as literal text in squash commits, plain-text email and many APIs. This replaces every earlier per-surface row. |
| Claude Code Code tab and the MiniMax Code chat pane: chat replies (owner-verified 2026-10-08 with a screenshot, and 2026-10-18 for the MiniMax Code pane) | the entity plus a normal space, outside code spans: End. Next. | The one exception. These panes normalize a raw U+00A0 away (a verified reply held 0 NBSPs) and collapse two ASCII spaces, so the entity is the form that renders a real gap there. The entity is never the form anywhere else. |
| HTML / JSX / Swift source for product copy | Swift "\u{00A0} ", JS/TS strings "\u00A0 ", JSX text {'\u00A0'} plus a space or  , HTML markup source  , or a shared SENTENCE_GAP constant | The rendered result is the same U+00A0 plus a space. Never . |
| Code, identifiers and machine-readable config | no gap character | Never put U+00A0 into code, identifiers or config. |
| A surface that strips U+00A0 | leave the text as it is | Do not switch to the entity. Report the surface in #Work-In-Progress. |
| Markdown source | the same U+00A0 plus a space between sentences | ⚠️ Two spaces at the end of a line is the unrelated hard-line-break syntax — don't confuse the two |
Producing U+00A0 through a tool. You cannot type a raw U+00A0 into your own chat reply,
but a shell step can produce one. Write the text with two ASCII spaces after each sentence,
then convert it before it leaves your hands:
perl -CSDA -pe 's/([.!?]) (?=\S)/$1\x{a0} /g' body.txt > body.nbsp.txt. Check that the
output holds at least one U+00A0 (grep -c $'\xc2\xa0' body.nbsp.txt) before passing it to
gh pr create --body-file, gh pr comment --body-file, or the text you hand to simple-chat post.
Verify, don't assume — run this self-test only on a NEW, unlisted surface
Since 2026-10-23 every surface takes a real U+00A0 plus a normal space, apart from the Claude
Code Code tab and the MiniMax Code chat pane, so there is nothing else to
choose. On a surface nobody has checked yet, post one test line with the gap generated in the
shell and ask the human whether they see a wider gap. If the surface strips the U+00A0, leave
the text as it is, never switch to the entity, and report the surface in
#Work-In-Progress.
History — 2026-08-19/20 findings on Claude Code (terminal + desktop), do NOT re-run these tests
2026-10-25 update — one exception. The owner reaffirmed the one mechanism and named the one
exception: the chat panes of Claude Code (the Code tab) and MiniMax Code (the MiniMax Code
pane) take the entity plus a normal space, because they normalize a raw U+00A0 away
and collapse two ASCII spaces. Everywhere else is a real U+00A0 plus a normal space. The
MiniMax Code chat pane always takes the entity.
2026-10-23 update — one mechanism everywhere. The owner replaced every per-surface rule
with one: a real U+00A0 plus a normal space on every surface, never the entity, and
never two plain ASCII spaces. The entity rows (chat panes 2026-10-08 and 2026-10-18, GitHub
2026-10-22) and the two-ASCII-space rows (files, commits, terminals, untested surfaces) below
are history only.
2026-09-04 update — desktop app superseded. The entity finding below for the desktop app (Code tab) was superseded by an owner-verified ruling on 2026-09-04: use two literal ASCII spaces there. The 2026-08-19 entity advice for the desktop app was withdrawn.
2026-10-08 update — desktop app superseded again. On the Code tab, type the
entity plus a space after each sentence (outside code spans); the renderer decodes it. A raw
U+00A0 from the model arrives as a plain space (0 NBSPs in the verified reply), and two
ASCII spaces collapse. Owner-verified 2026-10-08 with a screenshot. The 2026-09-04 ASCII
ruling is withdrawn.
Terminal CLI — no newer ruling. Last checked 2026-08-19/20; not re-verified since.
Default to two literal ASCII spaces there, and do not use the entity on a terminal
TUI, which would print it literally.
What was found 2026-08-19/20:
- ❌ Two literal ASCII spaces in chat — collapsed by the Markdown renderer. Invisible.
- ❌ A raw U+00A0 character typed directly into chat — normalized away in the transcript view. Especially deceptive: copy-pasting the reply out can still show two spaces, so it looks fixed when the human still sees one. Do not trust copy-paste as proof.
- ❌ App/output settings — no toggle governs inter-sentence spacing. Output-style settings change tone only; headless output-format flags don't apply to interactive chat; screen-reader modes only drop borders.
- ❌ Patching the client — compiled and signed; breaks code signing and is wiped by auto-update. Never attempt.
- ✅ The literal entity text
+ a space rendered as a visibly wider gap, and does again on the desktop app (re-verified 2026-10-08, see above). Not re-verified on the terminal CLI since, so use two ASCII spaces there. - ✅ Two literal ASCII spaces in files — correct and simplest; leave file content alone.
The transferable lesson
When an instruction appears not to take effect, stop repeating the promise and diagnose the rendering layer between you and the reader — then ask them what is on their screen. Four rounds of "fixed it!" were spent here before anyone checked whether the change could be seen at all. Intent is not output; output is not what is displayed.
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
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.

