Agent skill

Two Generators Disagree

by xberg-io in xberg-io/alef

Alef's dominant defect shape: two components read the same config or IR and act on it differently.

MITAuto-check passedDevelopment

Install Two Generators Disagree

skills CLI
$ npx skills add xberg-io/alef --skill two-generators-disagree -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install xberg-io/alef two-generators-disagree --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/xberg-io/alef.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.ai-rulez/skills/two-generators-disagree .claude/skills/two-generators-disagree && rm -rf skills-src

Use ~/.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/

Facts

Skill name
two-generators-disagree
GitHub stars
100
Token cost
~1.1k tokens
SKILL.md length
639 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Alef's dominant defect shape: two components read the same config or IR and act on it differently.

  • Works in 5 steps: Ask which two components disagree, don't… → Fix the shared source of truth, not the… → **Any asymmetry where one surface keeps… → …
  • A generated package fails to build
  • SKILL.md covers When to apply, Hard rules, Procedure and Anti-patterns
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Two Generators Disagree is an agent skill from xberg-io/alef. Alef's dominant defect shape: two components read the same config or IR and act on it differently. Use this skill when a generated package fails to build, a generated suite fails wholesale, or a lowering looks wrong in one backend but not others.

Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. The repository describes itself as: Generate fully-typed, lint-clean language bindings for Rust libraries across 16 languages. The licence is MIT.

When your agent uses it

  • A generated package fails to build
  • A generated suite fails wholesale
  • A lowering looks wrong in one backend but not others

Example prompts

  • “/two-generators-disagree”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Ask which two components disagree, don't assume one is simply wrong. Compare the failing
  2. Fix the shared source of truth, not the emitter. An IR-derived fix or a single named
  3. **Any asymmetry where one surface keeps a field/behavior and the other drops it (or vice versa)
  4. **A generated suite that looks clean can mean the checker was weakened, not that the output is
  5. String-level tests pass on output that cannot compile. Anything the target language must

What it can do on your machine

Read from SKILL.md and the folder at commit 2b14bcd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Two Generators Disagree loads about 1.1k tokens when it runs. Until then it costs about 68 tokens; SKILL.md has 639 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~68
When it runs · the whole SKILL.md, loaded when a task matches
~1.1k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from xberg-io/alef at commit 2b14bcd, republished under its MIT licence (© xberg-io). 639 words, ~1,119 tokens.

Download SKILL.mdSave it as .claude/skills/two-generators-disagree/SKILL.md (or your agent's skills folder).
name
two-generators-disagree
description
Alef's dominant defect shape: two components read the same config or IR and act on it differently. Use this skill when a generated package fails to build, a generated suite fails wholesale, or a lowering looks wrong in one backend but not others.
license
MIT

Two Generators Disagree

The most productive place to look for an alef bug is where two components read the same input and act on it differently. This is not a tendency — audits across multiple consumer repos have converged on it unprompted, and it recurs most often between the snippet generator and the e2e generator reading the same IR.

When to apply

  • A generated package fails to build
  • A generated test suite (snippets, e2e) fails wholesale rather than on isolated cases
  • A lowering or assertion looks wrong in one backend but correct in its siblings
  • Coverage counts differ between two surfaces that should agree (e.g. snippets vs. e2e for the same call)

Hard rules

  1. Ask which two components disagree, don't assume one is simply wrong. Compare the failing output against a sibling backend generated from the same config as a control — the correct implementation usually already exists somewhere in the tree.
  2. Fix the shared source of truth, not the emitter. An IR-derived fix or a single named constant fixes every consumer of that fact at once; a per-emitter patch fixes only the one you noticed. Alef already has named seams for this pattern — result_relative_path, swift_json_bridged_traversal_prefix, effective_ffi_default_features, gradle_build_task, expand_configured_features — check whether the fact you're about to duplicate already has one before adding a new copy.
  3. Any asymmetry where one surface keeps a field/behavior and the other drops it (or vice versa) is a defect until proven intentional. This includes: a config key honored by one generator and silently ignored by another; two hand-maintained "oracles" for what should be one derived fact (e.g. a config list and an IR field both claiming to answer the same question); two spellings of one filename or symbol where only one is actually read by the consuming tool.
  4. A generated suite that looks clean can mean the checker was weakened, not that the output is correct. Alef sometimes generates the config that hides its own bugs (a loosened tsconfig, for example). When output looks suspiciously clean, check whether the generated checker config conceals real errors before trusting the green result.
  5. String-level tests pass on output that cannot compile. Anything the target language must compile needs a real compile gate, not just an assertion on the emitted string; a shape that only a build catches will otherwise ship silently.
Show full SKILL.md (253 more words)Show less

Procedure

  1. When a generated package or suite fails, identify every alef component that touches the failing fact (which backend, which config field, which generator: binding codegen, e2e, snippets, scaffold).
  2. Diff behavior across those components for the same config/IR input. Note which ones agree and which one is the outlier — the outlier is not automatically the bug; check both directions.
  3. Trace each disagreeing component back to where it reads the fact. If two components each read their own copy of the same fact (a duplicated constant, a parallel config list, a second hand-written accessor), that duplication is very likely the root cause.
  4. Fix at the shared source of truth per Hard rule 2. Grep every sibling backend for the same pattern before calling the fix done — a fix that lands in one backend and not its siblings is how "one backend still has yesterday's bug" survives a whole release cycle.
  5. Add or strengthen a compile-level (not just string-level) regression test per Hard rule 5 when the fix touches a target language that must build.

Anti-patterns

  • Patching the one backend you noticed without checking every sibling backend for the identical match-arm or accessor pattern.
  • Treating a generated suite's green result as proof of correctness without checking whether the generated checker config was loosened.
  • Adding a fourth copy of an answer alef already computes somewhere, instead of routing every caller through the existing seam.
  • Assuming a coverage-count mismatch between two surfaces is intentional without confirming it in config or the IR.

© xberg-io, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .ai-rulez/skills/two-generators-disagree of xberg-io/alef.

Open the folder on GitHubat commit 2b14bcd

Compare with similar skills

Two Generators Disagree 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.

Two Generators Disagree compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Two Generators Disagree this skillxberg-io/alef100—~1.1kAutomated safety check: PassMIT
Vercel Composition Patternssupabase/supabase111k58 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers297k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k4 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 58 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    297k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 4 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed

More from xberg-io/alef

  • Alef

    xberg-io/alef

    Use Alef correctly for Rust-to-polyglot binding generation. An agent skill from xberg-io/alef.

    100 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Binding Audit

    xberg-io/alef

    Audit bindings for coverage gaps — verify every public Rust item is exposed across all generated language bindings.

    100 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Jinja Codegen

    xberg-io/alef

    Mechanics of alef's Minijinja template system: which templateenv module to call, how to register a template, inline-template rules, and engine settings.

    100 GitHub stars~735 tokensUpdated today
    Auto-check passed
  • Regen Audit

    xberg-io/alef

    Treat running alef generate/alef all/alef verify in a consumer repo as an audit, not a build step.

    100 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Release Procedure

    xberg-io/alef

    Cut, tag, and publish an alef release end-to-end. An agent skill from xberg-io/alef.

    100 GitHub stars~3k tokensUpdated today
    Auto-check passed

Categories

Questions about Two Generators Disagree

What does Two Generators Disagree do?

Alef's dominant defect shape: two components read the same config or IR and act on it differently. Two Generators Disagree is an agent skill from xberg-io/alef. Alef's dominant defect shape: two components read the same config or IR and act on it differently.

When should I use Two Generators Disagree?

Two Generators Disagree fits situations like: A generated package fails to build; A generated suite fails wholesale; A lowering looks wrong in one backend but not others.

How do I install Two Generators Disagree in Claude Code?

Run `npx skills add xberg-io/alef --skill two-generators-disagree -a claude-code`. Or copy the skill folder (.ai-rulez/skills/two-generators-disagree in xberg-io/alef) into .claude/skills/two-generators-disagree in your project. Claude Code loads it when a task matches its description.

How do I install Two Generators Disagree in Codex?

Run `npx skills add xberg-io/alef --skill two-generators-disagree -a codex`. Or copy the skill folder (.ai-rulez/skills/two-generators-disagree in xberg-io/alef) into .agents/skills/two-generators-disagree in your project. Codex loads it when a task matches its description.

Can I use Two Generators Disagree in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add xberg-io/alef --skill two-generators-disagree -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/two-generators-disagree, .gemini/skills/two-generators-disagree, .github/skills/two-generators-disagree and .opencode/skills/two-generators-disagree in your project.

What does Two Generators Disagree need to run?

SKILL.md names no scripts, command-line tools or credentials: Two Generators Disagree is instructions for the agent only.

Does Two Generators Disagree access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Two Generators Disagree safe to install?

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. Review the folder before installing.

What licence does Two Generators Disagree use?

Two Generators Disagree is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Two Generators Disagree use?

About 1.1k tokens (SKILL.md is roughly 4.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Two Generators Disagree?

Skills that share tags, products or a category with Two Generators Disagree: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Two Generators Disagree?

xberg-io (a GitHub organization) maintains it in xberg-io/alef, which has 100 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 10, 2026.

Source: xberg-io/alef on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.