Humanize Beagle logo

Humanize Beagle

Organization
existential-birds
humanize-beagle

Rewrite AI-generated developer text to sound human — fix inflated language, filler, tautological docs, and robotic tone. Use after review-ai-writing identifies issues.

Overview

Publisherexistential-birds
Repositorybeagle
Skill namehumanize-beagle
Stars
82
Forks
8
Bundled files
3
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 3 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by existential-birds on GitHub. Read the source before you install it.

Installation

Install the Humanize Beagle AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/existential-birds/beagle.git /tmp/beagle
mkdir -p .claude/skills
cp -r /tmp/beagle/plugins/beagle-docs/skills/humanize-beagle .claude/skills/humanize-beagle
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Humanize Beagle in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Humanize Beagle on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Humanize Beagle is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Humanize

Apply fixes from a previous review-ai-writing run with automatic safe/risky classification. Builds on the writing principles in docs-style.

Usage

Invoke the humanize-beagle skill with optional flags: humanize-beagle [--dry-run] [--all] [--category <name>].

Flags:

  • --dry-run - Show what would be fixed without changing files
  • --all - Fix entire codebase (runs review with --all first)
  • --category <name> - Only fix specific category: content|vocabulary|formatting|communication|filler|code_docs

Instructions

Hard gates

Advance past destructive or evidence-bound steps only when each PASS is true (commands and artifacts—not “I checked mentally”):

  1. G1 — Safe to edit filesPASS: git status --porcelain is empty, or git stash push -u -m "beagle-docs: pre-humanize backup" exits 0.
  2. G2 — Review input is real JSON with expected shapePASS: .beagle/ai-writing-review.json exists and the file parses as JSON with a git_head key and a findings value that is an array (possibly empty). Use the jq -e command in step 3, or the same checks with json.load in Python. If this fails, stop with a parse/validation error—do not apply fixes.
  3. G3 — References before rewritesPASS: For each finding you will edit, the references/*.md files required by step 4 for that category/type are read in this session before you change text.
  4. G4 — Per-file validationPASS: Every modified file passes the step 8 check for its type; otherwise run git checkout -- "$file" for that file and do not list it as OK in the summary.
  5. G5 — Delete review file only on full successPASS: Run rm .beagle/ai-writing-review.json only when G4 holds for all files you are keeping unchanged from validation failures (aligns with step 10).

1. Parse Arguments

Extract flags from $ARGUMENTS:

  • --dry-run - Preview mode only
  • --all - Full codebase scan
  • --category <name> - Filter to specific category

2. Pre-flight Safety Checks

bash
# Check for uncommitted changes
git status --porcelain

If working directory is dirty, warn:

text
Warning: You have uncommitted changes. Creating a git stash before proceeding.
Run `git stash pop` to restore if needed.

Create stash if dirty:

bash
git stash push -u -m "beagle-docs: pre-humanize backup"

G1 PASS: Either the working tree was already clean, or the stash command exited 0.

3. Load Review Results

Check for existing review file:

bash
cat .beagle/ai-writing-review.json 2>/dev/null

If file missing:

  • If --all flag: Invoke the review-ai-writing skill with --all first
  • Otherwise: Fail with: "No review results found. Invoke the review-ai-writing skill first."

If file exists, validate JSON and freshness (G2):

bash
# Required shape: parseable JSON with git_head and findings array (may be empty)
jq -e 'has("git_head") and ((.findings // []) | type == "array")' .beagle/ai-writing-review.json >/dev/null 2>&1 \
  || { echo "Invalid or incompatible ai-writing-review.json"; exit 1; }

# Get stored git HEAD from JSON
stored_head=$(jq -r '.git_head' .beagle/ai-writing-review.json)
current_head=$(git rev-parse HEAD)

if [ "$stored_head" != "$current_head" ]; then
  echo "Warning: Review was run at commit $stored_head, but HEAD is now $current_head"
fi

If stale, prompt: "Review results are stale. Re-run review? (y/n)"

4. Load Reference Material

Read the appropriate reference files based on the findings being fixed:

  • Read references/vocabulary-swaps.md when applying ai_vocabulary_high or ai_vocabulary_low fixes
  • Read references/fix-strategies.md for strategy details and before/after examples for any category
  • Read references/developer-voice.md for tone/register guidance when rewriting prose

Only load what you need — if fixing only vocabulary, skip the voice guide.

5. Filter Findings

If --category is set, filter findings to that category only.

Partition remaining findings by fix_safety:

Safe Fixes (auto-apply):

  • chat_leak - Delete conversational artifacts
  • cutoff_disclaimer - Delete knowledge cutoff references
  • filler_phrase - Delete filler phrases
  • heading_restatement - Delete restating first sentence
  • emoji_decoration - Remove emoji from technical text
  • boldface_overuse - Remove excessive bold formatting
  • ai_vocabulary_high - Swap high-signal AI words
  • narrating_obvious - Delete obvious code comments
  • synthetic_opener - Delete "In today's..." openers
  • sycophantic_tone - Delete or neutralize praise
  • vague_authority - Delete unattributed claims
  • excessive_hedging - Remove qualifiers
  • generic_conclusion - Delete summary padding
  • copula_avoidance - Use "is/are" naturally
  • rhetorical_device - Delete rhetorical questions
  • em_dash_overuse - Replace formulaic em dashes with commas, parentheses, or colons
  • thematic_break - Remove horizontal rules before headings
  • title_case_heading - Convert AI title-case headings to sentence case
  • curly_quotes - Normalize curly quotes/apostrophes to straight
  • negative_parallelism - Delete "Not just X, but also Y" filler constructions
  • challenges_and_prospects - Delete "Despite its... faces challenges..." formulaic wrappers

Needs Review Fixes (require confirmation):

  • promotional_language - Rewrite with specifics
  • formulaic_structure - Restructure sections
  • synonym_cycling - Pick consistent term
  • commit_inflation - Rewrite commit scope
  • tautological_docstring - Rewrite or delete docstring
  • exhaustive_enumeration - Trim parameter docs
  • this_noun_verbs - Rewrite docstring voice
  • ai_vocabulary_low - Reduce cluster density
  • apologetic_error - Rewrite error message
  • rule_of_three - Simplify three-item lists used as filler comprehensiveness
  • inline_header_list - Restructure boldfaced inline-header vertical lists
  • unnecessary_table - Convert small tables to prose
  • regression_to_mean - Restore specific facts replaced by vague praise

6. Apply Safe Fixes

If --dry-run:

markdown
## Safe Fixes (would apply automatically)

| # | File | Line | Type | Action |
|---|------|------|------|--------|
| 1 | README.md | 3 | synthetic_opener | Delete "In today's rapidly evolving..." |
| 2 | src/auth.py | 15 | narrating_obvious | Delete "# Check if user exists" |
| 3 | README.md | 42 | ai_vocabulary_high | Replace "utilize" with "use" |
...

Otherwise, apply fixes grouped by file to minimize file I/O:

  1. Sort findings by file, then by line number (descending, to avoid offset drift)
  2. For each file, apply all safe fixes in reverse line order
  3. For git artifacts (git:commit:*, git:pr:*), skip — these can't be auto-fixed. Report them for manual attention.

7. Handle Needs Review Fixes

If --dry-run, list them:

markdown
## Needs Review Fixes (would prompt interactively)

| # | File | Line | Type | Original | Suggested |
|---|------|------|------|----------|-----------|
| 4 | README.md | 8 | promotional_language | "powerful, enterprise-grade solution" | "authentication library" |
...

Otherwise, for each fix, prompt interactively:

text
[README.md:8] Promotional language: "powerful, enterprise-grade solution"
Suggested: "authentication library"
(y)es / (n)o / (e)dit / (s)kip all:

Track user choices:

  • y - Apply this fix as suggested
  • n - Skip this fix
  • e - User provides custom replacement
  • s - Skip all remaining interactive fixes

8. Validate Results

For each modified markdown file, verify basic validity:

bash
# Check for broken markdown (unclosed code blocks, broken links)
# Simple check: matching ``` pairs
grep -c '```' "$file" | awk '{print ($1 % 2 == 0) ? "OK" : "WARNING: odd number of code fences"}'

For modified source files, check syntax is still valid:

Python:

bash
python3 -c "import ast; ast.parse(open('$file').read())"

TypeScript/JavaScript:

bash
npx -y acorn --ecma2020 "$file" > /dev/null 2>&1

If validation fails for any file, revert that file:

bash
git checkout -- "$file"
echo "Reverted $file due to validation failure"

9. Report Results

markdown
## Humanize Summary

### Applied Fixes
- [x] README.md:3 - Deleted synthetic opener
- [x] README.md:42 - Replaced "utilize" with "use"
- [x] src/auth.py:15 - Deleted obvious comment

### Interactive Fixes
- [x] README.md:8 - Rewrote promotional language (user approved)
- [ ] docs/guide.md:22 - Skipped by user

### Skipped (Git Artifacts)
- [ ] git:commit:abc1234 - Chat leak in commit message (amend manually)

### Validation
- README.md: OK
- src/auth.py: OK

### Diff Summary
bash
git diff --stat

10. Cleanup

On successful completion (all validations pass):

bash
rm .beagle/ai-writing-review.json

If any validation fails, keep the file and report:

text
Review file preserved at .beagle/ai-writing-review.json
Fix issues and re-run, or restore with: git stash pop

Core Principles

  1. Delete first, rewrite second. Most AI patterns are padding. Removing them improves the text.
  2. Use simple words. Replace "utilize" with "use", "facilitate" with "help", "implement" with "add".
  3. Keep sentences short. Break compound sentences. One idea per sentence.
  4. Preserve meaning. Never change what the text says, only how it says it.
  5. Match the register. Commit messages are terse. READMEs are conversational. API docs are precise. Read references/developer-voice.md for the full register guide.
  6. Don't overcorrect. A slightly formal sentence is fine. Only fix patterns that read as obviously AI-generated.
  7. Understand regression to the mean. LLMs produce the most statistically likely output. Specific, unusual facts get replaced with generic, positive descriptions. When humanizing, restore specificity — replace vague praise with concrete details.
  8. Score density, not individual words. AI vocabulary words co-occur. One or two may be coincidental; a cluster of 3+ is a strong AI tell.

Example

Invoke the humanize-beagle skill with flags:

  • --dry-run — preview all fixes without applying
  • --category vocabulary — fix only vocabulary issues
  • --all — full codebase scan and fix
  • --category filler --dry-run — preview filler fixes only

Rules

  • Always load reference material before applying fixes (step 4); satisfy G3 per finding
  • Never modify files without a clean working tree or a successful stash (G1)
  • Apply safe fixes in reverse line order to avoid offset drift
  • Never auto-fix git artifacts (commits, PRs) — report them for manual action
  • Validate every modified file before considering it done (G4)
  • Revert files that fail validation
  • Do not present the step 9 summary as “complete” until step 8 validation has passed for every file you are keeping
  • Remove .beagle/ai-writing-review.json only after full success (G5); if validation failed partway, keep the file and follow step 10

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Humanize Beagle AI skill do?

Rewrite AI-generated developer text to sound human — fix inflated language, filler, tautological docs, and robotic tone. Use after review-ai-writing identifies issues.

Why use Humanize Beagle on TypingMind?

Because you install it once and use it with any model. Humanize Beagle is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Humanize Beagle in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/existential-birds/beagle/tree/main/plugins/beagle-docs/skills/humanize-beagle. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Humanize Beagle?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Humanize Beagle?

As many as you like. As long as a model supports skills, you can use Humanize Beagle with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Humanize Beagle AI skill free?

Yes. It is published on GitHub by existential-birds under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇