dedash — скилл для Claude Code: убирает длинные тире
Скилл находит длинные тире и похожие знаки в указанном вами фрагменте и меняет каждое на подходящую пунктуацию по смыслу.
npx skills add LilMGenius/paperthin --skill dedash -a claude-codeЧто делает dedash
Вы называете область: отрывок, поле, файл, выделение или целое дерево. Скилл проходит по ней и ищет знаки, которые работают как длинное тире — обособляют вставку, приложение, резкий поворот или заменяют пропущенный союз. Смотрит на роль в предложении, а не на код символа: U+2014, горизонтальная черта U+2015 и двух-трёхэмовые тире U+2E3A и U+2E3B считаются одинаково. Дефис, минус и диапазоны вроде 1990–2020 или London–Paris остаются на месте.
Замена подбирается по роли. Вставную конструкцию закрывают запятыми или скобками, приложение — двоеточием или запятой, резкий поворот — точкой, точкой с запятой или запятой. Если тире стояло вместо пропущенного «и», «но», «потому что», предложение переписывают. Сплошной замены нет: один и тот же символ в разных местах получает разную пунктуацию.
После правок скилл перечитывает изменённые предложения и чинит сбитый ритм, задвоенные пробелы, потерянные связки. Код, диффы, вывод команд, идентификаторы, URL и пути не трогает. В конце отчитывается, сколько знаков нашёл и поменял. Правки идут по одному вхождению с юникод-безопасным редактированием (PYTHONUTF8=1), потому что массовая замена ломает смысл там, где контекст разный. Если в области таких тире нет, скилл сообщает о промахе вместо того, чтобы править соседнюю пунктуацию.
Спорные случаи — например, намеренное тире в стилизованной прозе — он не меняет молча, а выносит на ваше решение. Область шире названной не расширяет без спроса.
Какие задачи решает
- убрать длинные тире из готового текста
- заменить тире на запятые и скобки по смыслу
- найти все варианты тире, включая U+2015 и U+2E3A
- не задеть дефисы, минусы и диапазоны при правке
- проверить отредактированные предложения на сбитый ритм
Примеры запросов агенту
- убери длинные тире в
docs/intro.md - пройди по выделенному фрагменту и замени тире на подходящую пунктуацию
- проверь ветку
src/на знаки, работающие как длинное тире
Как установить dedash
1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill dedash -a claude-code2Вручную: положить файлы
~/.claude/skills/dedash/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/dedash/
1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill dedash -a codex2Вручную: положить файлы
.agents/skills/dedash/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill dedash -a cursor2Вручную: положить файлы
.cursor/skills/dedash/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install LilMGenius/paperthin dedash2Вручную: положить файлы
.github/skills/dedash/SKILL.md1Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill dedash -a gemini-cli2Командой платформы
gemini skills install https://github.com/LilMGenius/paperthin --path skills/depth/dedashВручную: положить файлы
.devin/skills/dedash/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add LilMGenius/paperthin --skill dedash -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о dedash
Как установить dedash в Claude?
Выполните npx skills add LilMGenius/paperthin --skill dedash -a claude-code. Скилл встанет в ~/.claude/skills/dedash/SKILL.md.
Что делает dedash?
Находит в указанной вами области знаки, работающие как длинное тире, и заменяет каждый на пунктуацию или формулировку, которая подходит по грамматической роли.
Какие тире скилл считает длинными?
U+2014, горизонтальную черту U+2015 и двух-трёхэмовые тире U+2E3A и U+2E3B. Дефис, минус и диапазоны вроде 1-10 или London–Paris он оставляет.
Исходный текст
SKILL.md · MIT
--- name: dedash disable-model-invocation: true description: "Remove em-dashes and the dashes standing in for them from a user-owned scope, reading each occurrence in context and choosing the punctuation or wording that fits." --- Remove em-dashes and the dashes standing in for them from the scope the user names, one occurrence at a time, while leaving hyphens, ranges, and deliberate marks alone. ## Goal Replace each em-dash that should not remain with the mark or wording its clause actually needs. Target any dash doing an em-dash's job, whatever its exact character: U+2014 and its longer or repurposed look-alikes all read the same on the page. The user owns the scope: a passage, field, file, selection, or tree. Do not widen it without asking. ## Workflow 1. **FIND**: Take the exact scope from the user and locate every dash doing an em-dash's job in it, judged by the role it plays in the sentence, not its codepoint: any mark that sets off an aside, an appositive, an abrupt turn, or a missing conjunction. The em-dash (U+2014) is the common one; the horizontal bar (U+2015) and the two- and three-em dashes (U+2E3A, U+2E3B) read the same and count. The en-dash (U+2013) is the boundary case: it counts when it joins clauses where an em-dash would fit, but stays when it spans a range's endpoints, numeric or not (`1990–2020`, the `London–Paris` route). A dash doing a non-em job (a hyphen, a minus, a range) stays. Surface anything genuinely ambiguous as a judgment call rather than changing it blindly. 2. **REPLACE per role**: Choose per occurrence by grammatical role: - *Parenthetical aside*: commas or parentheses when the dashed material can be lifted out of the sentence. - *Appositive*: a colon or comma when the dashed material renames, defines, or expands the noun before it. - *Abrupt turn*: a full stop, semicolon, or comma when the dash marks a pivot, interruption, or restart. - *False-conjunction break*: rewrite the sentence when the dash stands in for a missing "and", "but", "because", "so", or another real connective. 3. **LEAVE-ALONE**: Unless the user explicitly includes them and the context proves them wrong, leave untouched: - hyphenated compounds, minus signs, and negative numbers - ranges such as `1-10`, `1–10`, or `London–Paris`; a range dash is not an em-dash - code, diffs, command output, identifiers, serialized data, URLs, paths, anchors, and query strings - quoted or clearly deliberate em-dashes in stylized prose; these surface as judgment calls, never as blind mutations 4. **RE-READ**: Read every changed sentence in place. Fix awkward rhythm, dangling punctuation, doubled spaces, and connector loss introduced by the replacement. If the sentence now needs wording instead of punctuation, rewrite the smallest clause that solves it. 5. **REPORT**: State the scope checked, how many dashes were found and changed, which replacements were used by role, and anything left alone or surfaced as a judgment call. ## Rules - Never do blanket replacement. The same glyph can require different punctuation in different clauses. - Never replace an em-dash with a hyphen as the cleanup. - Mutate with edit-safety: edit unicode-safe (`PYTHONUTF8=1`) and replace each dash per occurrence, never a blanket sweep; if the scope contains no such dash, report a MISS rather than changing nearby punctuation. - Preserve the user's voice. This skill removes a mark where requested; it does not flatten style outside the user-owned scope. ## Verification Before finishing, confirm: 1. The scope stayed exactly user-owned. 2. Every replacement was selected per occurrence by grammatical role. 3. Leave-alone cases stayed untouched or were reported as judgment calls. 4. The report includes counts and any judgment calls.
© LilMGenius · MIT · LilMGenius/paperthin