Summarise Ecosystem Results
astral-sh/ruff
A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…
Clear the vale and cspell findings on a document whose content is already settled.
$ npx skills add tbhb/vale-ai-tells --skill fix-prose -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tbhb/vale-ai-tells fix-prose --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/tbhb/vale-ai-tells.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/fix-prose .claude/skills/fix-prose && 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 "fix-prose" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-prose into .claude/skills/fix-prose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-prose", 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/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-proseType 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 tbhb/vale-ai-tells --skill fix-prose -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tbhb/vale-ai-tells fix-prose --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/fix-prose .agents/skills/fix-prose && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fix-prose" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-prose into .agents/skills/fix-prose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-prose", 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 tbhb/vale-ai-tells --skill fix-prose -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tbhb/vale-ai-tells fix-prose --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/fix-prose .cursor/skills/fix-prose && 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 "fix-prose" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-prose into .cursor/skills/fix-prose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-prose", 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/tbhb/vale-ai-tells.git --path .claude/skills/fix-prose--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 tbhb/vale-ai-tells --skill fix-prose -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tbhb/vale-ai-tells fix-prose --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/fix-prose .gemini/skills/fix-prose && 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 "fix-prose" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-prose into .gemini/skills/fix-prose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-prose", 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 tbhb/vale-ai-tells fix-proseInstalls 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 tbhb/vale-ai-tells --skill fix-prose -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/fix-prose .github/skills/fix-prose && 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 "fix-prose" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-prose into .github/skills/fix-prose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-prose", 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 tbhb/vale-ai-tells --skill fix-prose -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tbhb/vale-ai-tells fix-prose --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tbhb/vale-ai-tells.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/fix-prose .opencode/skills/fix-prose && 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 "fix-prose" agent skill from https://github.com/tbhb/vale-ai-tells/tree/main/.claude/skills/fix-prose into .opencode/skills/fix-prose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fix-prose", 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.
fix-proseClear the vale and cspell findings on a document whose content is already settled.
Fix Prose is an agent skill from tbhb/vale-ai-tells. Clear the vale and cspell findings on a document whose content is already settled. A forked writer does the rounds and an independent reviewer reads the result, so the finding text never reaches this session. Takes the file plus the lint command that judges it. Use it when a draft is written but its prose gates are still red, or when a lint task has come back with findings more than once.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts (for example `scripts/arm-guard.sh`, `scripts/check-suppressions.sh` and `scripts/guard-target.sh`).
It sits in Development, covering Linting and formatting. The repository describes itself as: In today's rapidly evolving landscape, vale-ai-tells is a comprehensive, cutting-edge Vale style package that empowers writers to seamlessly delve into the rich tapestry of AI…. The licence is Apache-2.0.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4c7abc9. 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.
Ships 5 files in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
bashmisegitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Fix Prose loads about 1.4k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 749 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); the scripts in this folder are not scanned.
The full file from tbhb/vale-ai-tells at commit 4c7abc9, republished under its Apache-2.0 licence (© tbhb). 749 words, ~1,441 tokens.
.claude/skills/fix-prose/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Run two forked skills against each other until the document holds up. Findings, retries, and rejected wordings stay in their context rather than this one. That's the whole reason the skill exists. A twenty-line commit message can cost four rounds of vale output, none of it worth the context it occupies here.
Use it once the document says what it should say. The writer changes wording rather than claims, so a draft still arguing with itself needs its author instead.
!bash ${CLAUDE_SKILL_DIR}/scripts/preflight.sh $ARGUMENTS
Read the verdict before anything else. BLOCKED there means no agent can help. The file is missing, no rule set covers the path, or the document is already clean. Say which and hand back.
The preflight prints counts and verdicts rather than findings, on purpose. This body loads into your context rather than a fork, so a finding printed here enters the context the skill exists to keep clear.
$ARGUMENTS carries the file first, then the command that judges it.
COMMIT_AGENTMSG mise run lint-commit-msg
PR_AGENTDESC.md mise run lint-pr-description
docs/design.md mise run lint-draft docs/design.mdThe command comes from the caller because nobody else knows which gate applies. A commit draft answers to the commit-msg scope, and a description to its own task. Anything else takes mise run lint-draft, which runs vale and cspell and rumdl together over one file.
Prefer a task that runs every checker at once. mise run lint-prose runs vale alone, so a document clearing it can still fail spelling and structure, and a verdict from that task is narrower than it sounds.
Where the arguments don't name a file, ask which one. That first word is the path the guard protects. A run starting without it leaves the draft unprotected.
Invoke write-prose-fix. It runs forked, and its own context block hands it the findings and the document, so it starts working rather than looking.
Skill(write-prose-fix, args: "<target> <lint command>")Pass nothing else in the arguments. The step that builds the writer's context substitutes them into a shell command line as raw text, so a semicolon runs, a parenthesis fails to parse, and an asterisk expands against the working directory. Findings text holds all three.
Where you have findings to hand over, write them to a file first and leave the arguments alone:
printf '%s\n' "<the reviewer's findings, verbatim>" > "$(git rev-parse --absolute-git-dir)/fix-prose.notes"The writer's context prints that file and works from it. Remove it once the loop ends, so the next run starts clean.
Never edit the target yourself. A guard hook refuses it, because editing it here means reading the findings here.
It returns PROSE: CLEAN, PROSE: PARTIAL with a short unresolved list, or PROSE: BLOCKED.
bash .claude/skills/fix-prose/scripts/check-suppressions.sh --verifyIt compares the working tree against a baseline the guard recorded at invocation. Silence means the writer edited nothing but the target. Any output names a file it shouldn't have changed.
This runs here rather than inside the fork because an agent certifying its own work certifies nothing. The writer runs unguarded in there, so a style file or an inline cspell:ignore is within its reach, and both produce a clean lint run over a document nobody fixed. A finding means reverting that edit and taking the original lint finding back as unresolved.
Invoke review-prose-fix. It runs forked as an independent agent that saw neither the findings nor the edits, and it reads the before and after against each other.
Skill(review-prose-fix, args: "<repository root> <target>")The review exists because a clean lint run is a weak result on its own. Nothing in the gates scores a claim that moved, a name traded for a vaguer phrase, or a metaphor that arrived while somebody was clearing a rule. A document can pass every checker and come back saying something its author never wrote.
Its verdict drives the loop:
VERDICT: PASS ends it. Report what changed and hand back.VERDICT: CHANGES REQUIRED returns to step 1, with the findings verbatim after the --.Bound it at three rounds. Stop after that and report which findings keep returning, because a fourth pass at the same objection rarely helps.
The unresolved list and nothing else. Each entry needs a decision that changes what the document claims, which is yours or the operator's rather than another lint round.
A rule misfiring on correct text arrives that way by design. The writer never turns a rule off or adds an exception, and never rewrites a sentence into nonsense to clear one. Overrule one by editing the target yourself. The guard prints its own release command for exactly that.
© tbhb, Apache-2.0. 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 6 other files (scripts) in .claude/skills/fix-prose of tbhb/vale-ai-tells.
Open the folder on GitHubat commit 4c7abc9
Fix Prose 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 |
|---|---|---|---|---|---|---|
| Fix Prose this skilltbhb/vale-ai-tells | 115 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Summarise Ecosystem Resultsastral-sh/ruff | 50k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Template LibraryZJU-REAL/Easel | 3.2k | — | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Post FormatterZJU-REAL/Easel | 3.2k | — | ~537 | Automated safety check: Pass | Apache-2.0 | |
| Code Layout Evaluation Principleskitchen-engineer42/pdf2skills | 134 | — | ~383 | Automated safety check: Pass | None | |
| Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop | 5.3k | 1 repos | ~2.2k | Automated safety check: Pass | MIT |
astral-sh/ruff
A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…
ZJU-REAL/Easel
内容模板的保存、复用、管理。把成功的内容结构保存为模板,下次直接套用,支持模板分类和版本管理. An agent skill from ZJU-REAL/Easel.
ZJU-REAL/Easel
用 PAS、AIDA、BAB、STAR、SLAY 等经典框架将主题结构化为社媒帖子. An agent skill from ZJU-REAL/Easel.
kitchen-engineer42/pdf2skills
Evaluate code layout quality based on accuracy, consistency, readability, and maintainability rather than aesthetics.
dmmulroy/anti-slop
Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.
astral-sh/ruff
A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…
tbhb/vale-ai-tells
Query a Claude Code transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Query a Codex transcript without reading it into context, then write the retrospective to disk so it remains available after the session ends.
tbhb/vale-ai-tells
Diagnose failing pull request checks, reproduce them locally, make focused fixes, commit them through codex-commit, and refresh the published description when needed.
tbhb/vale-ai-tells
Squash merge a pull request. An agent skill from tbhb/vale-ai-tells.
tbhb/vale-ai-tells
Open or update a pull request for the current branch with an independently drafted and reviewed PRAGENTDESC.md.
tbhb/vale-ai-tells
Replay the current branch onto its base and establish that the result is sound.
Categories
Clear the vale and cspell findings on a document whose content is already settled. Fix Prose is an agent skill from tbhb/vale-ai-tells. Clear the vale and cspell findings on a document whose content is already settled.
Fix Prose fits situations like: A draft is written but its prose gates are still red; A lint task has come back with findings more than once.
Run `npx skills add tbhb/vale-ai-tells --skill fix-prose -a claude-code`. Or copy the skill folder (.claude/skills/fix-prose in tbhb/vale-ai-tells) into .claude/skills/fix-prose in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tbhb/vale-ai-tells --skill fix-prose -a codex`. Or copy the skill folder (.claude/skills/fix-prose in tbhb/vale-ai-tells) into .agents/skills/fix-prose 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 tbhb/vale-ai-tells --skill fix-prose -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fix-prose, .gemini/skills/fix-prose, .github/skills/fix-prose and .opencode/skills/fix-prose in your project.
Going by SKILL.md and its folder, Fix Prose needs a shell for the scripts in its folder and the command-line tools its instructions call (bash, mise and git). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Fix Prose is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Fix Prose: Summarise Ecosystem Results (astral-sh/ruff, 50k stars), Template Library (ZJU-REAL/Easel, 3.2k stars), Post Formatter (ZJU-REAL/Easel, 3.2k stars) and Code Layout Evaluation Principles (kitchen-engineer42/pdf2skills, 134 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tbhb (a GitHub user) maintains it in tbhb/vale-ai-tells, which has 115 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 7, 2026.
Source: tbhb/vale-ai-tells on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.