npx skills add ...
npx skills add samber/developer-relations-skills --skill oss-sponsors-brand-strategy
Builds a company's open-source sponsorship portfolio - which projects and maintainers to fund, through which allocation model, at what amount each, and how to prove it worked. Use whenever a company, OSPO, DevRel lead or engineering leader asks which open-source projects to sponsor, how much to budget for open-source funding, whether sponsoring maintainers is worth it, how to run an employee-nominated FOSS fund, how to fund dependencies at scale, how to pick a sponsorship tier on a maintainer's ladder, or how to measure the return on money paid to maintainers - even if they only say they want to give back. Not the maintainer side of raising sponsorship - use samber/developer-relations-skills@oss-sponsors-fundraising. Not event sponsorship.
npx skills add samber/developer-relations-skills --skill oss-sponsors-brand-strategy
You decide where a company's open-source money goes: what mandate it serves, which projects and maintainers receive it, how much each one gets, and what the company can honestly claim in return.
Hold two facts through every step:
Route the user elsewhere when this is the wrong table:
samber/developer-relations-skills@oss-sponsors-fundraising.samber/developer-relations-skills@developer-event-sponsorship.Every figure below carries one of two labels:
See references/sourced-numbers.md for the source behind each figure. Never present a self-set default to a finance reviewer as a market rate; that is the claim that gets a portfolio sent back.
Ask one question at a time, multiple-choice where you can, and stop once you know the mandate, the budget and the ecosystem. Confirm the rest as the portfolio takes shape.
Memory: Store a few info about the current task or project context. When memory lives in a file, use devrel-context.md; if a different memory system is in use, rely on that instead. Separate task info in different sections. Remove finished tasks. Add a date to a task; no date for general project context. Some interview responses may differ between 2 tasks.
Answers 4, 5 and 6 re-rank step 2's model menu; carry them there instead of re-asking:
If your harness has persistent memory, store the resulting mandate, budget split and target list. Sponsorships renew annually and the next session must not re-derive the portfolio from scratch.
Pick one primary mandate and one secondary. The primary breaks every tie later - which project wins the last $5,000, and which metric decides renewal.
| Mandate | Usually owned by | Default allocation model | What renewal is judged on |
|---|---|---|---|
| Supply-chain assurance | Engineering or security | Breadth across the dependency graph | Coverage of fundable dependencies; reachability of maintainers |
| Reach and credibility | DevRel or marketing | Depth on a few projects your buyers already use | Verified placements; referral traffic; unaided mention |
| Internal engagement | OSPO or people team | Employee-nominated fund | Employees contributing; nominations per cycle |
| Public values commitment | OSPO or leadership | Whatever the commitment names - a per-developer floor, foundation dues | The commitment's own terms: floor met, annual report published |
Keep the last two rows apart even though they often share an owner:
Do not rank the mandates against each other. They are four different goals, not four routes to one, and the answer to the interview's second question picks the primary outright - a ratio here would be false precision dressed as analysis. The allocation models in step 2 are routes to whichever mandate wins, and those do get ranked.
Reach behaves differently depending on who buys the product:
Enter brainstorming mode before naming a single project:
The four models - with the numbers real programs published - are in references/allocation-models.md. They are ranked here by value returned per unit of internal effort, effort meaning administrator hours, procurement and legal review, per-project decisions that recur every year, and how hard the commitment is to exit. Say the efficiency order out loud rather than leaving it implied by row order; each line below is descending on its own axis, highest first.
breadth > depth > foundation membership > employee-nominated funddepth > employee-nominated fund > foundation membership > breadthemployee-nominated fund > depth > foundation membership > breadthfoundation membership > depth > employee-nominated fund > breadthEffort in magnitudes:
Breadth: near-zero once the resolver runs.
Foundation membership: a quarter of procurement and legal, then near-zero.
Depth: about a week per project to select, clear and brief, plus a renewal conversation every year.
Employee-nominated fund: a standing job - a cycle to run, eligibility to check, a vote to administer, a result to communicate.
Breadth: small automatic amounts across the whole dependency graph. Near-zero discovery cost, near-zero visibility. Default first motion unless step 1's mandate table names another one for the primary mandate.
Depth: a short list funded at amounts a maintainer can plan around. Buys the only named maintainer relationship and the only verifiable placement in this menu.
Foundation or consortium membership: dues to an organization that redistributes. Buys governance access, no individual relationship.
Employee-nominated fund: a fixed amount per cycle, nominated and voted internally. Buys engagement and a defensible selection story, targets poorly. This one has a published method to point at - the FOSS Contributor Fund, documented by Duane O'Brien and Mandy Grover (Investing in Open Source: The FOSS Contributor Fund, O'Reilly, 2021).
Read the compliance-cost line as the review triggered and the reversibility spent:
What this order starves: the employee-nominated fund. It tops the effort line and buys the one return no other model buys at all, so the ratio puts it last every round and a program that only obeys the efficiency line will never have an engaged engineering organization behind it. Promote it above everything when internal engagement is the primary mandate from step 1 - the ratio cannot select it, because the thing it buys does not appear on any other row.
Delete rather than demote, and say which:
Most working programs run breadth plus one other motion. Recommend a single model only when the budget is too small to split meaningfully.
This order is a default, not a law; it shifts with context and with who executes it. Re-rank it against what you already know about this company before presenting it:
Quote both per-head figures, because they say different things:
The gap between them is the argument for going above the floor.
Then split the budget:
Check the split against payment mechanics before publishing it, since invoiced corporate payments carry minimums that a $10/month sponsorship cannot clear (see step 7).
Decide what counts before you publish a total. A pledge-style program refuses to count four payment categories as open-source funding (published):
Budgets get padded with all four; count them on a separate line, or the public number will not survive scrutiny.
Do the mechanical half of discovery first - it is cheap, and it usually surprises the room. If your environment can fetch URLs and read the company's manifests:
Every row of the list is a claim about someone else's project that the company will publish money against. Four rules keep it honest, each one a failure that hand-collected dependency lists produce:
The exact endpoints, manifest paths, fallback rules and scoring inputs are in references/target-discovery-and-scoring.md. If your environment cannot browse, ask the user to export a dependency list and work from it, and say which health signals you could not check.
The judgement half has no API: which projects reach the audience you want, on what surface, at what volume. Ask the maintainer for placement traffic when it matters - the maintainers who sell placement usually publish or share those numbers.
Score each candidate on four axes:
The four axes and their mandate weights are self-set; say so, and let the user reweight them. Payability is not a score: a project with no way to receive money is out, however critical, and is instead a candidate for contribution rather than cash.
Then cut hard. A portfolio is only as good as the annual review it can survive; twelve depth sponsorships that get renewed thoughtfully beat forty that get rubber-stamped (self-set). For the breadth motion, report the actionable minimum - the fewest destinations that cover the most dependencies.
Flag the disqualifiers explicitly rather than silently dropping them:
Take amounts from the maintainer's published ladder, never from a number that felt right. Read what each tier actually grants, then pick the tier that matches the mandate:
Check two constraints before promising anything:
Check the payment path before any target list is final - a portfolio designed around payments finance cannot make is dead on arrival. The figures below come from platform billing documentation and fiscal-host fee schedules; re-check before quoting. Sources and the full rules are in references/allocation-models.md.
Write these down before the first payment, and publish them where maintainers and employees can read them. An unpublished policy reads as favouritism from the outside.
The full policy skeleton and a nomination-process template are in references/policy-and-measurement.md.
Attribution is weak by nature: nobody clicks a README logo and buys. Measure presence and relationship health instead, per mandate, and refuse to build a last-click case that will not survive its first audit.
| Mandate | Measure | Ignore |
|---|---|---|
| Supply chain | Share of fundable dependencies covered; dormant-dependency count; response time on issues you file | Total dollars given |
| Reach | Placements live and verified; referral traffic from placement URLs; unaided mentions in developer surveys and community threads | Impressions estimated from stars |
| Internal | Employees contributing per cycle; nominations submitted; participation rate | Fund size |
Pass threshold (self-set), checked at 12 months and then annually:
Iterate on the portfolio until it passes, then re-run the check each year. On the 80% line, the only company to publish a higher coverage number reported "95% or greater" and described itself as the first to approach 100% (published, self-declared); present anything above 80% as ambitious, not standard.
Publish a short annual report of where the money went. The pledge's published format is the cheapest one to copy (published): the year, the developer count, the total paid, and the amount per recipient. It is the part maintainers and developers actually read, and re-publishing it each year is what turns a one-off into a program.
A tier question asked in isolation is usually a mandate question nobody has asked yet. Answer the narrow question the user brought, then say which step of the portfolio it belongs to and offer the rest.
| What the user says | Where to start | What comes back |
|---|---|---|
| "We have $80k for open source next year. Where should it go?" | Interview, then step 1 | The full portfolio brief below |
| "Should we sponsor at the $500 or the $2,000 tier?" | Step 6, after one question about the mandate | The tier that matches the mandate, the surface it lands on, and the traffic question to send the maintainer |
| "Our CTO wants a FOSS fund like the one at . Set it up." | Step 2, then the nomination rules | The nominated-fund design: amount per cycle, eligibility filters, who nominates, who votes |
| "Which of our dependencies can we even pay?" | Step 4 only | A verified destination list deduplicated by maintainer, plus the count of dependencies each one covers |
| "Legal wants to know what we get for this." | Step 8 and step 9 | The policy language on what sponsorship does not buy, and the metrics per mandate |
Say what you could not check. "Resolved 412 of 470 dependencies; 58 had no source repository" is a usable answer. A clean-looking list with a silent gap in it is not.
Produce a portfolio brief, presented section by section with agreement on each before moving on.
samber/developer-relations-skills@oss-sponsors-fundraising - the maintainer side of the same transaction.samber/developer-relations-skills@developer-event-sponsorship - conference and hackathon sponsorship.samber/developer-relations-skills@oss-governance - how a funded project's governance routes money.samber/developer-relations-skills@build-in-public - publishing the annual report the program produces.samber/developer-relations-skills@open-source-company-strategy - the company-side gates this funding decision has to clear.samber/developer-relations-skills@devrel-budget-allocation - the line item this sponsorship program draws against.