agentleFS
DevolutionsDevolutions/IronRDP/.agents/skills/variants/SKILL.md

variants

Skill3.3k starsChanged 2 days agoApache-2.0View on GitHub

Run two or three isolated probe implementations of one brief that differ in named decisions or approaches, judge them blind against fixed criteria, and return a decision brief from which the human or the lead picks or composes the final design. Use inside a delivery or intent flow once the alternatives are named and only implementation evidence can settle them, or when the user asks to try several approaches.

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Never run a candidate that contradicts adopted intent.

    line 14
  2. Distinctive:

    When no criterion can distinguish the candidates, return the question to the human rather than inventing a proxy.

    line 22
  3. Distinctive:

    Write the decision brief from the template as an artifact, never committed.

    line 40
  4. Distinctive:

    Keep the variant branches until the design they informed has merged, since the final implementer may read how a probe handled a decision.

    line 41

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “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

A variant is a probe: build it only far enough to measure the criteria and never merge it, because probe code carries shortcuts and has not been through the review loop; the chosen design - one variant, or the best decisions of several - is implemented fresh and the criteria rerun on it. A run answers a question nobody could settle on paper; when the facts or the human can settle it, ask instead, since three probes cost more than one question.

Two modes

  • Tournament: intent and contract are fixed and the candidates are approaches; whoever runs it picks, within autonomy.
  • Experiment: the candidates are decisions the human has not committed; the human picks and writes the commitment, so no intent file changes until they do.

Never run a candidate that contradicts adopted intent; that is drift with a budget, not an experiment.

Compose

Candidates come from alternatives the human voiced, the options of an escalation, or alternatives you derive and name before launch; without a named difference there is nothing to run. Vary one decision when the open decisions are independent; when they are coupled, make each variant a coherent design - a full set of answers - and compare designs, because a bundle that mixes answers at random tests nothing. Three variants by default, raised only by the human, because each costs a build. Fix the criteria before the first variant starts, choosing from references/criteria.md, each with how it is measured; the acceptance checks are written then and shared, since a check a variant writes for itself proves only that it did what it did. When no criterion can distinguish the candidates, return the question to the human rather than inventing a proxy.

Run

Same base commit, same brief apart from the named differences, same model for every variant; these reduce what else could explain a difference, without proving the design caused it. Each variant in its own worktree or session, never shown another's work, or they converge. The contract and any blind suite stay read-only in every variant, and a defect found in them is escalated outside the run, because a candidate that moves its oracle is not comparable. A variant stops once every criterion can be measured on it, or earlier when its candidate proves infeasible, since the run has answered for it; one that fails a must-pass criterion is disqualified from winning but keeps its measurements, since they still inform a composed design, and when all fail, investigate before concluding anything from the run.

Judge

A fresh context, from a different model family when available, gets the criteria, the measurements, and snapshots labelled A, B, C stripped of branch and commit metadata; never who or which model built which, the workers' transcripts or rationales, or your preference or proposed design, because each of those carries the framing the blind read is meant to remove. It ranks per criterion with the evidence it turned on, names an attribution to one decision only where the evidence isolates it, and reports bundled effects as unidentifiable otherwise. A variant another beats on every criterion that splits them is dropped, so the brief carries only the front where a trade exists; a criterion that split nothing is dropped from the brief too. "No clear winner" is a verdict; so is "none of these", with the decisions a better design would combine.

Brief and after

Write the decision brief from the template as an artifact, never committed; it is what the human reads instead of three implementations. Keep the variant branches until the design they informed has merged, since the final implementer may read how a probe handled a decision; then delete them, because the brief is what survives. In an experiment, proceed on the proposed design while the human is away only when the verdict is clear by the criteria, logged as provisional; the human adopts or reverses from the brief, at the latest when they merge, since nothing resting on a provisional decision merges without them. A verdict that is not clear stops this thread and waits; other threads continue.

# Experiment <n>: <question>
Base: <commit>. Variants: A <decisions>; B <decisions>; C <decisions>.
Criteria: <each with how it was measured; must-pass marked>.
| Criterion | A | B | C |
Verdict (blind): <ranking; evidence; attributions the evidence isolates; effects left unidentifiable>.
Per variant: <what it demands of callers; what it forecloses and the cost of switching later; surprises met>.
Proposed design: <a variant, or the decisions combined>, because <evidence>.
Status: proceeding provisionally | waiting.
To adopt or rewrite: <one candidate commitment sentence per decision>.

Download now (ZIP)

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 1 mentionMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 1 mentionJul 2026: 16 mentionsAug 2026: 1 mentionSep 2026: 15 mentionsOct 2026: 14 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the Devolutions/IronRDP repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about Devolutions/IronRDP

The biggest 5 of 60 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 60

Talked about on GitHub, Bluesky and Hacker News (60 times).

On GitHub · 50

45 more on GitHub

On Bluesky · 9

4 more on Bluesky

On Hacker News · 1

Does it work?

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

Reviews can't be read right now.

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.