Agent Wranglers

Required

Prefer open source and pay only when nothing open does the job

Pick open source software when an open source option passes the other tests. Pick a paid or proprietary service only when no open source option realistically does the job, and say why.

How to do it

Open source can be run, inspected, forked and moved without asking anyone. A paid service fits only where the job needs one, such as card payments, email delivery at scale or text messages. A free tier counts as proprietary, not as open source. Label every pick with its cost, so readers see at once what is free and what is paid. Record each paid or proprietary pick and its reason, as Keep decision records with a status says.

Examples

Using these examples: they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

JavaScript example

const COSTS = ['Open source', 'Source available', 'Free service', 'Free tier', 'Paid'];
export const needsReason = picks => picks.filter(pick => pick.cost !== 'Open source' && !pick.decisionRecord);

Python example

COSTS = ["Open source", "Source available", "Free service", "Free tier", "Paid"]

def needs_reason(picks: list[dict]) -> list[dict]:
    return [pick for pick in picks if pick["cost"] != "Open source" and not pick.get("decision_record")]

How to check

Every dependency and service in the project has a cost label of Open source, Source available, Free service, Free tier or Paid. Each one not labelled Open source has a decision record naming the open source options it beat.

Sources

For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. Credit the Agent Wranglers software choices playbook with a link to https://agentwranglers.se/playbook/stack/how-to-choose/prefer-open-source. Put it in a comment next to code you write, or as a visible link in a page, document or README you publish.