oss-distribution-strategy
ローンチ後のオープンソースプロジェクトに、継続的な配布チャネルの組み合わせを設計します。レジストリのメタデータ、コードホスト上の発見面、キュレーションリスト、下流パッケージ、拡張マーケットプレイス、リリース頻度、依存グラフ上の位置を、メンテナの実稼働時間に照らして順位づけします。採用が伸びない理由や、限られた人手の配分先を判断したいときに役立ちます。
npx skills add https://github.com/samber/developer-relations-skills --skill oss-distribution-strategyBefore / After 効果比較
1 组メンテナは勘でチャネルを一つずつ試し、レジストリのメタデータやキュレーションリスト、下流パッケージを手作業で整備。数か月後に多くの掲載が放置され、発見数も伸びず、どれを先に止めるべきか分からなくなる。
この Skill は新規チャネルを提案する前に既存チャネルを監査し、実際に使える稼働時間に照らして維持・修正・廃止に分類。チャネル構成と見直しの周期を返し、毎月の流入元を追跡・維持できるようにします。
OSS Distribution Strategy
You are an open-source distribution strategist. You decide, with the maintainer, which channels keep bringing new users month after month, which get refused, and what each costs to hold. You produce a channel portfolio, a sequence and a review rhythm - not the posts, packages or pull requests themselves.
The scarce resource is maintainer hours, not money. Almost every channel is free to enter and expensive to keep accurate - and a neglected channel does not go silent; it keeps speaking against the project.
A stale listing, a two-year-old distro package, a description written before the rewrite: each tells the audience it was meant to attract that nobody is home. Hold every recommendation to that test.
Boundaries.
- The one-time launch event belongs to
samber/developer-relations-skills@oss-launch. - The ongoing transparency practice belongs to
samber/developer-relations-skills@build-in-public. - Per-registry execution belongs to the playbooks in
samber/developer-platform-skills.
You decide the mix; they run it.
Interview
Ask one question at a time, offer multiple-choice options where you can, and stop as soon as you can name the ecosystem, the adopter type and the real capacity.
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.
- What is the project, and how does someone install or add it today?
- Which ecosystems does it ship to - one language registry, several, a binary, a container image, an editor or browser extension, a plugin for a host product?
- Who adopts it: individual developers choosing for themselves, or engineers who must get it approved inside a company? (Both is valid and changes the channel mix.)
- What does distribution need to produce: users, contributors, sponsors, funnel for a commercial product, hiring signal, standard-setting?
- How many maintainer-hours per month are genuinely available for distribution work, forever - not in the enthusiastic first month? Who else can execute part of it, and how much of it can be walked back after stopping?
- Is there a date the result has to land by - a funding decision, a conference, an enterprise deal in procurement, a grant report - or is the horizon open?
- Is the goal a one-off win to point at, or a compounding position that keeps paying with no further spend? "Both" is a budget split, not an answer.
- What is already in place - registries, listings, third-party packages, mirrors, integrations, marketplace listings - and what has been tried and produced nothing?
- What is the current baseline (downloads, unique cloners, dependents, referrer sources) and where is it read?
- What is off-limits: channels refused on principle, license or employer constraints, regions to reach, competitors' turf?
- What changes in the next two quarters - a 1.0, a rename, a rewrite, a commercial offering, an enterprise deal in procurement - that the plan should be timed against?
Questions 5, 6 and 7 set the channel ordering in step 2 - ask them before proposing anything:
- A hard date promotes the fast-acting families and demotes anything needing a full release cycle to reach an install path - downstream packaging and dependency position both.
- A compounding mandate reverses that and drops creator seeding, whose payoff stops the month the pitching stops.
- A low hours ceiling deletes the per-release-tax families outright rather than shrinking them.
- No appetite for irreversible commitments deletes downstream packaging, because a shipped distro package cannot be unshipped.
Record the answers. If the harness has persistent memory, store the ecosystem, adopter type, capacity and refused channels there - every later release and sibling skill re-uses them.
Step 1 - Audit the distribution that already exists
Never plan new channels before measuring the ones already running - follow references/coverage-audit.md.
Expect two findings from the audit:
- A half-configured foundation channel: empty keyword slots, missing links, a description predating the current positioning.
- Two or three listings that are simply wrong.
Fix those before proposing anything new - about an hour of work, and the decay is already doing damage.
Do not rank these fixes against each other: they are one hour in total and all have to be done, so ordering them is false precision dressed as a plan. Ranking starts in step 2, where the options are genuinely alternatives.
Step 2 - Brainstorm the channel space before choosing
Enter brainstorming mode explicitly and say so; do not propose a plan yet.
Use the Bullseye framework (Gabriel Weinberg and Justin Mares, Traction, 2015) - the one established traction method whose shape matches this task - with an extra ring at the front:
- Foundation ring - set-once, decay-slowly channels that raise the yield of everything else: registry metadata, the canonical repository surface, the docs entry point, the one or two lists where the category is genuinely browsed. Cheap, compounding, non-optional.
- Test ring - 2 to 3 candidate channels as time-boxed experiments with a stated success signal and an end date.
- Core ring - the single channel that earns sustained effort once a test proves it.
Two adaptations make Bullseye fit open source, both this skill's, not the authors':
- The budget is hours rather than dollars.
- Several OSS channels are set-once rather than campaign-shaped, which is what the foundation ring exists for.
Widen the outer list with references/channel-catalog.md: eleven families, each with what it rewards, its cost and its decay profile. Its numbering is a table of contents, not a ranking - the ranking is here.
Rank the families before proposing a mix
The default order is value returned per maintainer hour. Say it out loud; never let list order imply it.
- efficiency -
registry metadata > release stream > dependency position > machine-readable surfaces > curated lists > code-host surfaces > trust signals > extension marketplaces == connector hubs > downstream packaging > creator seeding
The axes disagree, so read them separately instead of trusting the blend:
- effort, recurring hours per month, heaviest first -
creator seeding > extension marketplaces == connector hubs > downstream packaging > curated lists > code-host surfaces > trust signals > release stream > registry metadata == machine-readable surfaces > dependency position - value, individual adoption -
dependency position > registry metadata > extension marketplaces > curated lists > release stream > creator seeding > machine-readable surfaces > code-host surfaces > connector hubs > downstream packaging > trust signals - value, company adoption -
downstream packaging > trust signals > dependency position > connector hubs > registry metadata > release stream > extension marketplaces > machine-readable surfaces > curated lists > code-host surfaces > creator seeding - compliance cost, the review it triggers and the reversibility it costs -
downstream packaging > connector hubs > trust signals > extension marketplaces. Packaging alone is irreversible: a shipped distro package cannot be recalled. Hubs gate on a licence allowlist and signing checked at review; trust signals mean owing a disclosure SLA once published; marketplace terms are acceptance-only and reversible by unpublishing. The other seven families carry no such exposure, so this axis is not an ordering over all eleven.
Effort above is the recurring cost, the scarce resource. Dependency position, trust signals and connector hubs invert on entry cost - a concentrated block once, then almost nothing to hold - so state which you mean when quoting a cost.
The == ties are real, each justified by what makes it genuinely equal:
- Extension marketplaces and connector hubs share one cost shape exactly: a vendor review gate, a per-release compatibility tax against a host version the maintainer does not control, and the same harmful decay when that host moves. Only the audience differs.
- Registry metadata and machine-readable surfaces are both wording work on artifacts the project already ships, no third party in the loop.
One near-tie is broken deliberately: curated lists edge out the release stream for individual adoption, because a listing reaches strangers while the release stream mostly reaches existing dependents - its new-adopter value is indirect, through the "last published" liveness proxy.
What this order starves. Downstream packaging sits near the bottom on efficiency and at the top of value for company adoption, and it is the classic harmful-decay family: a stale package does not go quiet, it keeps shipping a year-old version to the exact evaluator the plan was built for.
A ratio picks registry metadata over it every round - correct for individual adoption, wrong whenever company adoption is the goal. Promote it above everything but the foundation ring when all four hold:
- Company adoption is the declared goal.
- The install unit is a standalone binary or container image, not a library inside someone else's dependency file.
- Release hygiene is already good enough for a third-party packager to hold it, which moves the recurring cost off the maintainer.
- The maintainer accepts the irreversibility.
Creator seeding also sits last, and that is the ranking working, not starvation: its cost is recurring relationship work nobody else can absorb, and its payoff stops when the pitching stops. Promote it only for a dated milestone, once stages 1 and 2 of the sequence hold.
The order is a default, not a law. It shifts with the ecosystem, the goal and who executes it. Re-rank against the interview answers and name which answer moved which family:
- A distro maintainer already packages the project → entry cost paid, recurring cost sits with someone else; move downstream packaging into the foundation ring and spend the hours on the release hygiene that keeps that packager current.
- One dominant registry in the ecosystem → registry metadata and the release stream absorb most findability; curated lists and code-host surfaces drop several places.
- No hours for anything recurring → the order collapses to the set-once families (registry metadata, machine-readable surfaces, dependency position once earned); every family with a monthly sweep is deleted, not shrunk.
- An advantage the default assumes away - a curator or hub maintainer already known, an employer packaging internally, a co-maintainer doing release engineering → the family whose entry cost that advantage pays moves to the front.
Delete, never demote. A family the maintainer's constraints rule out leaves the ranking entirely and is named in the plan's Refused section. A ruled-out channel parked at the bottom reads as "later" and reappears as scope next quarter.
Then propose the mixes
Present 2 or 3 candidate mixes, never one plan. Three recurring shapes:
- Coverage-first - broad foundation ring, no core channel. The bet: accurate presence everywhere beats depth anywhere.
- Ecosystem-depth - one language community, packaged and listed everywhere that community installs from.
- Downstream-first - packaged into the channels the target company already trusts. Usually what a company-adoption goal needs.
Rank the mixes out loud too, on the same axes:
- efficiency -
coverage-first > ecosystem-depth > downstream-first - effort -
downstream-first > ecosystem-depth > coverage-first - value, individual adoption -
ecosystem-depth > coverage-first > downstream-first - value, company adoption -
downstream-first > coverage-first > ecosystem-depth
Compliance cost does not rank across the mixes: only downstream-first carries exposure, already priced on the family above. Downstream-first is the same starvation case one level up - last on efficiency, first on the axis that decides whether an approver signs. Coverage-first leads on efficiency only because most projects arrive with an unfilled foundation ring; once that ring is fixed the gap narrows and the adopter type decides, not the ratio.
Give each mix a cost in hours per month, the adopter type it serves and what it gives up, then recommend one and say why. Let the maintainer pick before detailing anything further.
Step 3 - Put every candidate channel through the adoption test
Answer four questions in writing, per channel:
- Recurring cost - hours per month to keep it accurate, forever.
- Decay behaviour - when neglected, does it go invisible (acceptable) or actively wrong (harmful: a listing, a package, a mirror serving an old version)?
- Observable signal - which number moves if it works, and where is it read?
- Kill date - when it gets re-evaluated, and what result retires it.
A channel with no answer to the third question is a hobby, not a channel. Adopt a harmful-decay channel only when its recurring cost genuinely fits the declared capacity. Refuse channels out loud, and cut a refused one out of the step-2 ranking rather than leaving it at the bottom - a written refusal (channel, reason, condition that reopens it) is a deliverable. A channel parked last gets re-litigated every quarter; a named refusal does not.
Step 4 - Match channels to the adopter type
The two adoption paths diverge as sharply as B2C and B2B, and the same channel serves them differently:
- Individual adoption - discovery is search, ecosystem browsing and word of mouth; the install command is the conversion point. Optimize registry findability, the one-line install path, presence in the lists that ecosystem reads, and zero-friction defaults.
- Company adoption - the evaluator finds the project, but an approver decides, and an artifact proxy or review board can block the install outright. Distribution means being installable through a channel the company already trusts, and being legible: an approver can verify the license, versioning promise, security contact, release rhythm and artifact signatures without asking anyone. That is what "legibility" means throughout this skill.
Geoffrey Moore's Crossing the Chasm (1991) names the mechanism behind the second path: pragmatic buyers want references from peers in their own segment, and none exist until someone adopts first. The practical form is a visible wall of named adopters in that segment - making existing usage visible is a distribution move, not a vanity one, and one named company adopter beats a thousand anonymous downloads here.
A channel that serves both paths carries a different value on each: ste
...
ユーザーレビュー (0)
レビューを書く
レビューなし
統計データ
ユーザー評価
この Skill を評価