跳到主要内容
知仓学习社ZHICANG

the-maintainers-no

Say no as an open-source maintainer without burning contributors or yourself — the feature that doesn't fit, the PR that took someone a weekend but …

不碰外部(只输出文字)无严重或高危命中mohitagw15856/pm-claude-skills

它会碰到什么

扫了多少1 个文本文件,5 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

The Maintainer's No Skill

Maintainer burnout is mostly unsent nos: the feature request at 40 comments,

the well-meant PR that would triple the maintenance surface, the company

that filed "urgent" on a volunteer's project. Every avoided no costs a

week of low-grade guilt; the sent no costs five minutes and is almost never

received as badly as feared. This skill writes the specific no each

situation needs — with the reasoning shown, the effort honored, and a real

alternative where one exists — because "no with a why and a path" keeps

contributors that "maybe someday" quietly loses.

What This Skill Produces

  • The situation-fit no, drafted ready to post: scope-no, PR-no,

support-no, urgency-no, or the fork blessing

  • The reasoning paragraph: the project-vision line that makes this no

consistent instead of personal (and reusable next time)

  • An alternative that's real: plugin/extension point, the fork blessing,

a linked workaround, a paid-support pointer if one exists — or nothing,

stated honestly, if nothing exists

  • A policy line worth adding to CONTRIBUTING/README so the next no is

half-written

Required Inputs

Ask for (if not already provided):

  • The thread/PR/request text, and how long it's been festering
  • The real reason it's a no (doesn't fit vision? maintenance cost? just

don't want to? — all valid; the phrasing differs)

  • Who's asking: first-timer, regular contributor, company, drive-by
  • What the maintainer could genuinely offer, if anything (review a smaller

PR? accept behind a flag? nothing?)

Framework

  1. Diagnose the no. Scope-no (doesn't fit what this project is) ·

cost-no (fits, but the maintenance is forever and it's mine) · PR-no

(effort real, direction wrong) · support-no (this is unpaid volunteer

time being invoiced) · capacity-no (fits, but not this year — the only

no that may honestly become "someday").

  1. Honor effort before delivering direction. For PRs especially: name

something genuinely good in it first (one specific thing, not flattery).

The order is: thanks-with-specifics → the no with the why → the path if

real. Skipping straight to the no is efficient and expensive.

  1. Show the vision line, not the mood. "This project deliberately stays

[small/zero-dep/single-purpose]; features like X belong in

[plugins/forks/other tools]" — a no anchored to a stated principle

generalizes; a no anchored to today's energy invites relitigation.

If the principle isn't written anywhere yet, this is the moment: the

skill drafts the CONTRIBUTING line.

  1. Bless the fork sincerely. "This is exactly what forks are for — the

license means you don't need my permission, and I mean that as an

invitation, not a brush-off" defuses more standoffs than any other

sentence in open source.

  1. For companies: name the exchange. Volunteer-maintained ≠ SLA. The

reply states what's available free (the issue queue, at volunteer pace),

what isn't (deadlines, priority), and — if the maintainer wants it —

the paid path ("sponsorship/support contract gets your issue a

scheduled slot"). No apology anywhere in it.

  1. Close the loop physically. The no ends with the issue's fate:

closed-wontfix, converted to discussion, or left open behind a named

condition. A no that leaves the thread open re-accrues the guilt.

Output Format

## Diagnosis
[Which no this is, and the real reason in one honest line]

## The reply (ready to post)
[Thanks-with-specifics → the no with the vision line → the real path or
honest nothing → the thread's fate]

## Add to CONTRIBUTING (so the next one is half-written)
[The policy line this no just established]

## If they push back
[The one-paragraph second reply — same decision, warmer, final]

Quality Checks

  • [ ] The no is unambiguous — a reader cannot mistake it for maybe
  • [ ] Effort is honored with a specific, true observation, not a compliment

template

  • [ ] The reasoning cites a project principle that will still be true next

month

  • [ ] Any offered alternative is real — no "PR welcome" unless a PR would

genuinely merge

  • [ ] The thread's fate is stated (closed / converted / condition), and the

pushback reply doesn't reopen the decision

Anti-Patterns

  • [ ] Do not soften into ambiguity — "maybe down the road" costs you this

conversation again in six months, with interest

  • [ ] Do not apologize for the project's boundaries; gratitude yes,

apology no

  • [ ] Do not match a demanding tone — the calm no in a heated thread is

read by every future contributor, not just this one

  • [ ] Do not invent roadmap promises to escape the moment
  • [ ] Do not skip the fork blessing out of possessiveness — the license

already said yes; saying it warmly is free

Related

[[maintainer-triage]] — the system that catches these before they fester;

[[saying-no-kindly]] — the general craft; [[first-maintainer-month]] for

setting the boundaries early enough that nos stay rare.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

同名技能的其他版本

有 3 个不同仓库或目录里都有叫 the-maintainers-no 的技能。它们内容并不相同,别混用: