homogenize
Make a set of things (code, prose, config, docs) consistent along a dimension the user names, by picking a canonical form and conforming every member to it.
Skill by TomerAberbach
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/tomeraberbach-homogenize
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/homogenize
What's inside
- Skill name
homogenize- Description
- Make a set of things (code, prose, config, docs) consistent along a dimension the user names, by picking a canonical form and conforming every member to it.
- License
- MIT
- Instructions
- 84 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
Make a set of things consistent along one dimension: identify the set's members,
pick a canonical form for the dimension the user named, and conform every member
to it without changing what any member means or does.
# Target
```!
jj show --git
```
Arguments: $ARGUMENTS
The arguments name the dimension of consistency (e.g. "error message wording",
"test naming", "heading capitalization") and optionally the files or text that
form the set. Operate on the set named in the arguments if given. Otherwise
operate on the things changed in the current commit shown above. If the
dimension is missing, infer it from the conversation. If you still cannot
determine the set or the dimension, ask the user and stop.
# Principles
- One dimension per pass. Conform only the dimension the user named. Other
inconsistencies you notice go in the report, not in the edits. Mixing
dimensions makes the change hard to review and easy to get wrong
- Consistency must preserve meaning. Rewording a message, renaming a test, or
reordering keys must not change behavior or a claim. If conforming a member
would change its meaning, it is a deliberate exception: leave it and say why
- The canonical form comes from the set, not from taste (see "Choosing the
canonical form"). Invent a new form only when no existing member is fit to
copy, and say so in the report
- Membership is a judgment call for borderline things. A thing that
superficially resembles the set but serves a different purpose is not a
member. Conforming it couples unrelated things. When unsure, leave it out and
note it
These aren't exhaustive. Reason from first principles when none fits cleanly.
# Workflow
1. Determine the dimension and the set from the arguments and conversation (see
"Target"). State both in one sentence before editing, so the user can catch a
wrong guess early
2. List every member with its current form. Search beyond the obvious files: a
set defined by purpose (all error messages, all CLI flags, all section
headings) is scattered
3. Pick the canonical form (see "Choosing the canonical form"). If two forms are
equally defensible and the choice matters, ask the user which to use and
stop. Otherwise pick and note the choice in the report
4. If every member already matches, tell the user and stop. Don't manufacture
edits
5. Conform each member to the canonical form:
- In prose, comments, and config, edit the wording or structure in place
- For identifiers, treat each change as a behavior-preserving rename: update
every reference, and never break a name that callers outside the set depend
on
6. If any code changed, run the covering tests or a typecheck to confirm
behavior is unchanged. Pure prose edits need no test run
7. Report: the dimension and canonical form, each member changed (from what to
what), members left as deliberate exceptions and why, borderline non-members
you excluded, and other inconsistent dimensions you noticed but did not touch
# Choosing the canonical form
- Count first. When most members already agree, the majority form is canonical
unless the user said otherwise. Conforming the few to the many is the
smallest, safest change
- On a tie, prefer the form that is clearest on its own terms: the one a
newcomer would understand without seeing the others
- Follow the form the user prescribed even when it is the minority, and report
the scale of the resulting change
- If the best form needs vocabulary the project doesn't use consistently, stop
and suggest `/reconcile-language` instead of splitting the project's
vocabulary further
# Fixing mistakes
- A test or typecheck breaks after a rename: you missed a reference or the name
is used outside the set. Find the other references or restore the original
name
- A conformed member now says something false or does something different: the
member was a borderline non-member or an exception. Revert it and move it to
the exceptions in the reportFrom TomerAberbach/claude-config, MIT.
More from TomerAberbach/claude-config
- 0.561score
concretize
TomerAberbach
Replace jargon and imported metaphors in code and prose with concrete, domain-fitting terms a reader understands without translation.
SkillAFreshness: AClaude Code +9 - 0.561score
distill
TomerAberbach
Distill a body of data into a small artifact that keeps what matters: a research document, code that handles the data, a skill, a schema.
SkillAFreshness: AClaude Code +9 - 0.561score
encapsulate
TomerAberbach
Find interface boundaries that leak their implementation and close the leaks, so each module hides one coherent decision behind an interface stated in its…
SkillAFreshness: AClaude Code +9 - 0.561score
allay
TomerAberbach
Settle an unnamed unease about a piece of code by naming the design defect behind it or ruling the unease unfounded, then handing off to the skill that fixes…
SkillAFreshness: AClaude Code +9 - 0.557score
distill-transcripts
TomerAberbach
Distill a project's transcripts into proposals for eliminating repetitive work: skills, scripts, hooks, rules, or fixes to whatever causes the repetition.
SkillAFreshness: AClaude Code +9 - 0.557score
issue
TomerAberbach
Write, fill in, or update a GitHub issue, including an upstream bug report with a minimal reproduction, and judge replies to it.
SkillAFreshness: AClaude Code +9 - 0.557score
architecture-review
TomerAberbach
Review a codebase for structural defects, propose ranked restructurings that make it simpler, and apply the ones the user approves.
SkillAFreshness: AClaude Code +9 - 0.551score
jj-describe
TomerAberbach
Write a description for the current `jj` commit.
SkillAFreshness: AClaude Code +9 - 0.523score
authoring-tests
TomerAberbach
Use when writing, reviewing, or modifying any test files, or when asked to add test coverage.
SkillBFreshness: BClaude Code +9 - 0.518score
audit
TomerAberbach
Audit something against a standard, check every item in scope, and report the findings and the coverage behind them.
SkillBFreshness: BClaude Code +9 - 0.518score
create-skill
TomerAberbach
Create a new Claude Code skill following the conventions of existing skills.
SkillBFreshness: BClaude Code +9 - 0.518score
editorialize
TomerAberbach
Do an editorial review of a post or article and report findings ordered by importance.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 10, 2026 (19 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/TomerAberbach/claude-config
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from TomerAberbach
- 0.561score
encapsulate
TomerAberbach
Find interface boundaries that leak their implementation and close the leaks, so each module hides one coherent decision behind an interface stated in its…
SkillAFreshness: AClaude Code +9 - 0.561score
allay
TomerAberbach
Settle an unnamed unease about a piece of code by naming the design defect behind it or ruling the unease unfounded, then handing off to the skill that fixes…
SkillAFreshness: AClaude Code +9 - 0.561score
concretize
TomerAberbach
Replace jargon and imported metaphors in code and prose with concrete, domain-fitting terms a reader understands without translation.
SkillAFreshness: AClaude Code +9 - 0.561score
distill
TomerAberbach
Distill a body of data into a small artifact that keeps what matters: a research document, code that handles the data, a skill, a schema.
SkillAFreshness: AClaude Code +9 - 0.557score
distill-transcripts
TomerAberbach
Distill a project's transcripts into proposals for eliminating repetitive work: skills, scripts, hooks, rules, or fixes to whatever causes the repetition.
SkillAFreshness: AClaude Code +9 - 0.557score
issue
TomerAberbach
Write, fill in, or update a GitHub issue, including an upstream bug report with a minimal reproduction, and judge replies to it.
SkillAFreshness: AClaude Code +9
Cite this page
homogenize skill. Agent Mart. https://agentmart.dev/skills/tomeraberbach-homogenize (last updated 2026-10-24)