agentleFS
gufrancogufranco/claude-engineering-rules/skills/cross-model/SKILL.md

cross-model

Skill3 starsChanged 30 days agoMITView on GitHub

Consult a different model for orthogonal reasoning on a consequential decision, especially when confident. Discovers whichever model CLI is installed rather than assuming a vendor. Use when the user says "second opinion", "cross-model", "ask another model", "stress-test this", "what am I missing", "red-team this decision", or before committing to an architecture, a schema, a security boundary, or anything hard to reverse. For a reversible local decision or routine implementation, proceed directly; for a question with one verifiable answer, read the source instead.

The file

We split this skill into the rules it gives an agent

12 rules. About 0 are common, 8 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈8

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before committing to a direction, never after the investment is sunk.

    line 32
  2. Distinctive:

    When it feels obvious.

    line 33
  3. Distinctive:

    When the need is to expand options rather than pick among the ones already listed.

    line 34
  4. Very specific:

    Default to expand when no direction is chosen yet, stress when one is.

    line 55
  5. Distinctive:

    Never hardcode a vendor or a script path.

    line 59
  6. Distinctive:

    When nothing is installed, say so plainly and offer the nearest substitute: an adversarial same-model pass with an explicitly assigned …

    line 69
  7. Distinctive:

    Do not rush to resolve disagreement.

    line 101
  8. Very specific:

    Never present its output as your own analysis, and never present it as authoritative.

    line 118
  9. Distinctive:

    Stop and redact when the prompt draft contains a token, a key, a password, or personal data.

    line 130
  10. Very specific:

    Stop and read --help when about to pass a flag to the consultant CLI from memory.

    line 131
  11. Distinctive:

    Stop and state the reason in writing when about to dismiss a divergent answer.

    line 132
  12. Very specific:

    Stop and label the result same-model when the discovery loop printed no available: line.

    line 133

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Overview

Different training data, different tuning, different sampling. The blindspots do not line up. That non-overlap is the entire product; agreement is a bonus, not the goal.

Invoking this is a mark of rigor, not an admission of uncertainty. It means the decision was taken seriously enough to generate friction against it.

The Key Inversion

Consult when the decision is consequential and you are confident. Confidence is exactly where a blindspot hides, because there is nothing prompting a second look. A decision that already feels shaky gets scrutiny for free.

The corollary: adversarial coverage from the same model shares its blindspots by construction. A subagent that reviews your reasoning is running the same priors that produced it. That is worth doing and it is not this.

When to Use

Consequential, regardless of confidence:

  • An architecture choice before committing, especially a public interface, a data model, or a service boundary.
  • A security-sensitive surface: authentication, tenant isolation, payment handling, anything reachable by an untrusted caller.
  • A schema change or migration, which is hard to reverse.
  • Concurrency: locking, idempotency, distributed coordination, anything where the failure is a race.
  • A decision that constrains future options more than it looks like it does.

Moments where a second perspective pays for itself:

  • Before committing to a direction, never after the investment is sunk.
  • When it feels obvious.
  • When the need is to expand options rather than pick among the ones already listed.
  • In a problem space where training coverage is plausibly thin.

Skip it when the decision is reversible in the next commit with no migration and no coordination, when nothing downstream depends on it, or when the answer is a fact that reading the source settles. Reading the source is cheaper and definitive; see the anti-hallucination table in the global instructions.

Process

  1. Pick the mode per Two Modes: expand with no candidate yet, stress with one.
  2. Resolve the installed consultant per Discovering the Consultant, and read its --help.
  3. Compose the four-part prompt per Composing the Prompt, with secrets and personal data redacted.
  4. Send it, capture the session identifier, and run up to three rounds per Multi-Turn.
  5. Re-verify every specific in the reply per Reading the Response, then synthesize.
  6. Report the four items in Reporting Back.

Two Modes

ModeTimingAsk
expandBefore a candidate exists"What approaches am I not considering? Give tradeoff profiles, then a principled recommendation."
stressAfter a candidate exists"Here is the design. What would make it wrong? Findings first, be adversarial."

Default to expand when no direction is chosen yet, stress when one is. Blocked rather than deciding is still a valid reason to invoke; shift the framing from "expand my options" to "here is exactly where I am stuck and what I have ruled out."

Discovering the Consultant

Never hardcode a vendor or a script path. Resolve what is actually installed, and say which one was used in the report.

for c in codex gemini llm aichat mods ollama; do
  command -v "$c" >/dev/null 2>&1 && echo "available: $c"
done

Then invoke it in its own idiom. Check --help before composing the call rather than guessing flags, per the external-tools rule in the global instructions. Prefer the highest reasoning setting the tool offers; this is a low-frequency, high-stakes call, so latency does not matter.

When nothing is installed, say so plainly and offer the nearest substitute: an adversarial same-model pass with an explicitly assigned opposing stance, labeled as same-model so its weaker independence is visible. Do not silently degrade to that and present it as a cross-model result.

Composing the Prompt

Tight, with the intent stated. Four parts:

  1. Context: the constraints that actually bind, the scale, what is already fixed and not up for debate.
  2. The artifact: the code, the schema, the design, verbatim.
  3. The ask: expand, evaluate, or synthesize.
  4. The output shape: name it, or the reply arrives in a form that is hard to use.

Useful shapes to request: tradeoff profiles + principled recommendation, findings first, threat model + mitigations, step plan with verification.

Two prompt rules that raise quality measurably:

  • Prefer disconfirmation. "What would make this wrong?" outperforms "Is this right?" The second invites agreement.
  • Ask for file paths and verification steps. A claim that names where to check is a claim you can falsify, which suppresses confident invention.

Never paste secrets, credentials, tokens, or personal data. This leaves the machine and goes to a third party. Redact or summarize, per security.md and privacy-defaults.md. The same obligation as any external publication applies: sending content to an external service publishes it.

Reading the Response

The response is a relay, not a source. Every specific it carries, a file path, a line, an API name, a version, a benchmark number, is re-verified against the primary source before it enters your work. See relay-not-source.md. Another model's citation is exactly as likely to be a well-formed wrong coordinate as any other relay, and it arrives with more apparent authority.

OutcomeWhat it means
AgreementReal signal for calibration, and not proof. Both models may share a blindspot inherited from similar training. On a genuinely high-stakes call, ask what neither of you would see
DivergenceUsually the most valuable result. It marks a non-obvious tradeoff, an unexamined assumption, or an edge case one of you missed
It looks wrong to youArticulate why before dismissing it. If the flaw cannot be stated clearly, that inability is the finding, and your confidence was the blindspot

Synthesize, do not select. The best outcome is usually a third answer neither model proposed, built from what each contributed. Picking a winner throws away the part that made the friction worth generating.

Do not rush to resolve disagreement. Sit with it in proportion to the stakes. For a lower-consequence call, take a direction and move; consensus was never the goal.

Multi-Turn

Most tools support resuming a session. Three rounds is a productive shape: evaluate the framework, drill into the specific area that surfaced, then ask for a synthesis paste-ready for the actual artifact.

Capture the session identifier before truncating output. Piping through tail commonly cuts the header that carries it, which forecloses returning to that thread later.

Reporting Back

State four things, briefly:

  • Which model was consulted, and that it was a different model.
  • What it added that was not already on the table.
  • Where it diverged, and how the divergence was resolved.
  • What was re-verified against a primary source before being used.

Never present its output as your own analysis, and never present it as authoritative. It is one more perspective that has been checked, per ai-guardrails.md.

Common Rationalizations

  • "I am confident, so a second opinion is wasted": confidence is the trigger, per The Key Inversion. Consult when the decision is consequential.
  • "A red-team subagent covers this": a same-model reviewer shares the priors that produced the decision. Label it same-model, and use it only when no other model is installed.
  • "The other model cited the file and line, so it is right": its citation is a relay. Open the coordinate before using it.
  • "Both models agree, so the decision is settled": agreement can be a shared blindspot. On a high-stakes call, ask what neither model would see.
  • "Pasting the config file gives better context": the prompt leaves the machine. Redact credentials and personal data, or summarize.

Red Flags

  • Stop and redact when the prompt draft contains a token, a key, a password, or personal data.
  • Stop and read --help when about to pass a flag to the consultant CLI from memory.
  • Stop and state the reason in writing when about to dismiss a divergent answer; failing to state it is the finding.
  • Stop and label the result same-model when the discovery loop printed no available: line.

Verification

  • The report names the consulted model and the CLI that ran it.
  • Each specific taken from the reply has a re-read of its primary source in this session.
  • The report states what the consultant added, where it diverged, and how the divergence was resolved.
  • The prompt that was sent contains no credential or personal data.
  • A decision the consultation changed is recorded through /plan adr, or the report says it changed nothing.

Related

  • /spike answers a design question by building a throwaway artifact. Use it when the question is empirical rather than a matter of judgment.
  • /interview-me sharpens an underspecified request before it is worth consulting anyone about.
  • /review and the red-team agent give same-model adversarial coverage, which composes with this rather than replacing it.
  • /plan records the resulting decision. A consultation that changed the direction belongs in the decision record with what changed it.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.