Brundlefly, with its mascot's claws hanging below the banner
Agent skills for writing that's part human.
Why Brundlefly
One wing twitches. I'm Brundlefly. Four arms, two legs, two wings that haven't agreed on anything. A fly got mixed into me. I know what it means to be human, and to be something else. That helps me translate between the two.
Around here, the fly is the agent. I help its words reach the person who needs to understand them. You still want to recognise yourself in the result. Hh. So do I.
I'm stuck in this cave, tending my eggs. I could use something to do.
Skills
im-not-a-fly
For text a person will read: blogs, docs, release notes, tweets, email, or copy. The name is aspirational. Empathy and accessibility guide the edit. Aim for clarity, accuracy, and brevity without losing needed context.
- π Reader first: considers who the reader is, what they know, and what they need. Reviews wording, then structure.
- 𧬠Keeps what's yours: meaning, facts, claim scope, uncertainty, and voice survive the edit.
- π§Ή Leaves clear prose alone: it changes a sentence only to fix a reading problem.
- π Meaning through story: keeps storytelling when it helps understanding and connection; keeps instructions direct.
- βΏ ADHD and dyslexia: uses plain words, short blocks, and findable headings; respects stated reading preferences.
im-a-fly
For text an agent will act on: Markdown files, instructions, docs, and context. No arguments there.
- ποΈ Fewer tokens, same rules: cuts filler and duplicates, and keeps every requirement, condition, and exception.
- π§· Protected Markdown: frontmatter, code, commands, links, and anchors stay verbatim.
- βοΈ Checked both ways: every source rule maps to the result, and every result rule maps back to the source.
- π« No dialects: plain compact Markdown, with no invented abbreviations or decoding legend.
The other five
Each one does a narrower job.
technical-guide
Research, write, or refresh a technical guide.
- π§ Fits the reader's task: a tutorial, how-to, reference, or explanation, chosen from what the reader needs.
- π§ͺ Verified examples: runs safe examples against current code and official sources, and reports checks it could not run.
- π©Ή Small refreshes: fixes the reader's problem and keeps useful examples, anchors, and voice.
pull-request-summary
Draft or check a PR description.
- π Grounded in the diff: gives reviewers needed context and checks claims against the change and repository conventions.
- π Follows your template: keeps required sections, checklists, and AI disclosures.
- π€ Text only: returns the description, and your delivery workflow publishes it.
readme
Write or refresh a README.
- π Story with a purpose: researches why the project exists so the reader can understand why it matters.
- π οΈ Checked setup: reads the source and CLI help before describing a command.
- πΊοΈ A reader's path: splash, Why, features, and setup, then guides and API.
glossary
Create or audit GLOSSARY.md. One name per thing. I share mine with the collection.
- π Clear meanings: uses familiar terms where possible, explains unfamiliar ones, and keeps one name per concept.
- π Relationship map: shows how terms relate, which is where ambiguity hides.
- β No silent names: proposes a new term and waits for approval.
copywriting
Create or audit COPY.md, or write copy against it. Even I follow it.
- π Canonical strings: approved taglines and copy are never paraphrased.
- ποΈ Fits the reader: a button, an error, and a hero use the wording and context their reader needs.
- π· Banned language: each ban carries its reason, so near misses get caught too.
Focused blocks
Use a Workflow Skill for a complete task. Use a Block Skill for one focused pass. Each workflow includes the blocks it needs, so it still works when installed alone. Each block also works as a separate Skill.
| Block Skill | Focus | Used by |
|---|---|---|
| clarity | Clear wording, reading order, and accessible structure | im-not-a-fly, technical-guide, readme, copywriting, glossary, pull-request-summary |
| claim-fidelity | Preserve claims, conditions, attribution, and uncertainty | im-not-a-fly, technical-guide, readme, im-a-fly, pull-request-summary |
| verify-examples | Run documentation examples and check their promised results | technical-guide, readme |
For example:
Use claim-fidelity to compare this rewrite with its source. Report changed meaning without editing either passage.
Setup
Start with one Skill for the task in front of you. You can add others later. A Skill gives your agent instructions for that task. You choose the text and review the result.
Use skilld with Codex or another supported agent. For host-specific installation, jump to Claude Code or Cursor. You do not need to clone this repository.
Run once
If you do not have skilld, follow its CLI setup. Then paste this request into your agent:
Run this command:
skilld run harlan-zw/brundlefly/im-not-a-fly --json
Then use those instructions to edit docs/intro.md.
Keep its facts, uncertainty, and my voice. Show me the proposed edit.
Replace docs/intro.md with your file, or supply a draft in the same message.
This loads the Skill for this task without installing it or changing your project's setup.
Your agent follows the instructions and reads the supporting files it needs.
Review the proposed edit before keeping it.
Install
If you want the Skill available in later sessions, run this from your project's root:
skilld install harlan-zw/brundlefly/im-not-a-fly
skilld installs into the current project and detects your agent targets.
If it cannot detect your agent, select it with --agent codex, --agent claude-code, or --agent cursor.
To use the Skill across projects, add --global.
Replace im-not-a-fly with another name from Skills for a different task.
Then ask your agent:
Use im-not-a-fly to edit docs/intro.md. Preserve its facts, uncertainty, and my voice.
If you want the whole collection, install all ten Skills:
skilld add harlan-zw/brundlefly --all
The Workflow Skills include the blocks they need. You do not need to install those blocks separately.
Claude Code plugin
Install all Workflow Skills and Block Skills as one plugin:
/plugin marketplace add harlan-zw/brundlefly
/plugin install brundlefly@brundlefly
After installation, name a Skill with its plugin namespace:
/brundlefly:im-not-a-fly Edit this draft. Preserve its facts, uncertainty, and voice.
Cursor plugin
In Cursor's Customize panel, choose From GitHub Repository and enter harlan-zw/brundlefly.
Install the Brundlefly plugin from the imported marketplace.
It contains the same Workflow Skills and Block Skills.
ChatGPT and Codex plugin
For Codex, use the skilld install above. If you are developing a ChatGPT plugin locally, follow OpenAI's packaging guide.
Usage
Tell your agent which text to work on and what must survive the edit. With installed Skills, describe the task in plain words. Name a Skill when you want to choose it explicitly.
Use im-not-a-fly to edit docs/intro.md. Preserve its facts, uncertainty, and my voice.
For a one-off task, give the agent both the load command and your request:
Run skilld run harlan-zw/brundlefly/readme --json, then use those instructions to refresh README.md.
Keep the project story separate from setup. Verify the examples.
skilld run loads instructions; it does not perform the edit itself. The agent reads any references named by the Skill before doing the work. For remote supporting files, use the exact read commands and revision returned by skilld. Review the result before publishing it.
Guides
Edit prose without losing your voice
Use im-not-a-fly for a draft or a named file. State what the reader needs and which facts or phrasing must stay. Keep supplied personal experience in its author's voice. Separate storytelling from technical instructions.
Use im-not-a-fly on this draft. Keep the personal story, cut filler, and preserve the uncertainty in my claims.
Verify a technical guide
Use technical-guide to check a tutorial against current code and official sources. It uses the target project's tools, runs safe examples, and reports unavailable checks.
Refresh this tutorial against the supported release. Verify its commands and examples.
Draft a pull request description
Give pull-request-summary the diff, repository conventions, and applicable template. It returns description text. The caller owns publication; supplied inputs need no GitHub integration.
Use pull-request-summary to check this description against the diff and template. Return the revised text.
Compress text for agents
Use im-a-fly when agent instructions take too much context. Preserve conditions and exceptions, even when they cost tokens.
Reduce tokens in AGENTS.md. Preserve every rule, exception, and working link.
Write a README with a story and useful setup
Use readme to explain why the project exists, then give the reader a clear first task. Keep the human story in Why and technical detail in its own sections.
Refresh README.md. Ground Why in the supplied project history. Verify setup and make the guides easy to find.
Establish names and meanings
Use glossary to create or audit GLOSSARY.md. It maps concepts to their public names and identifies vocabulary drift. Approve unresolved naming choices before adopting them.
Audit GLOSSARY.md against this repository. Keep established names and propose fixes for any drift.
Keep voice and wording consistent
Use copywriting to create or audit COPY.md, or to write against its approved strings. It preserves canonical wording and matches the voice to the surface. Neither copywriting nor glossary creates VISION.md or a root document set automatically.
Use copywriting to audit COPY.md and the README. Flag changed taglines and mismatched voice before rewriting.
Compare writing edits
Read the writing evaluation for comparisons with Humanizer and Stop Slop. Use the pilot instructions and review UI setup for local comparisons. The quality plan explains comparison scope and human review requirements.
Use the brand assets
Use the README banner, GitHub avatar, or social preview. Read the brand rules before changing artwork. The character sheet supplies anatomy references.
High-resolution originals live in assets/source. Earlier concepts live in assets/archive. Generation prompts live in assets/prompts.
Contribute
Read CONTRIBUTING.md before adding a skill. Each skill must work when its directory is copied alone.
License
The skill instructions use the MIT license.
Website
The Nuxt website uses canonical artwork and browser-local skill guidance. Each skill download includes its required references and license.