This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-steward.git


The following commit(s) were added to refs/heads/main by this push:
     new e2d05915 docs(spec): add contributor-growth family spec (#564)
e2d05915 is described below

commit e2d059150ceb54f7ff042f7a591f4bbd80772f63
Author: Justin Mclean <[email protected]>
AuthorDate: Sat Jun 27 06:12:53 2026 +1000

    docs(spec): add contributor-growth family spec (#564)
    
    Formalises the contributor-to-committer skill family into a named spec
    documenting five skills (mentoring-welcome, contributor-activity-sweep,
    contributor-nomination, good-first-issue-author, committer-onboarding),
    their stage coverage, behaviour contract, and known gaps. PMC-member
    nomination, emeritus handling, and contributor offboarding are noted as
    deferred pending per-project policy knobs.
    
    The plan notes called for a spec-RFC pass for this family; this spec is
    that pass, following the repo-health-family and release-management
    lifecycle docs-first pattern.
    
    Generated-by: Claude (Opus 4.7)
---
 tools/spec-loop/specs/contributor-growth.md | 165 ++++++++++++++++++++++++++++
 1 file changed, 165 insertions(+)

diff --git a/tools/spec-loop/specs/contributor-growth.md 
b/tools/spec-loop/specs/contributor-growth.md
new file mode 100644
index 00000000..f3eb30da
--- /dev/null
+++ b/tools/spec-loop/specs/contributor-growth.md
@@ -0,0 +1,165 @@
+<!-- SPDX-License-Identifier: Apache-2.0
+     https://www.apache.org/licenses/LICENSE-2.0 -->
+
+---
+title: Contributor-growth family
+status: experimental
+kind: feature
+mode: Triage
+source: >
+  MISSION.md § Rationale ("Project health depends on a growing contributor
+  base"). triage-mode.md § Known gaps (contributor-growth skills span
+  Triage and Mentoring but are not yet a named family).
+  mentoring-mode.md § Known gaps. Implemented by contributor-nomination,
+  contributor-activity-sweep, committer-onboarding, good-first-issue-author,
+  and mentoring-welcome.
+acceptance:
+  - Every family skill is read-only or propose-before-post; none
+    transitions, promotes, or announces without explicit maintainer
+    confirmation.
+  - The contributor-to-committer path has at least one skill per stage:
+    first contact, activity tracking, nomination brief, post-vote onboarding.
+  - All family skills validate under skill-and-tool-validate with no
+    errors.
+---
+
+# Contributor-growth family
+
+## What it does
+
+Groups the skills that span the contributor-to-committer (and
+committer-to-PMC) path into a named family. Each skill covers one
+stage a maintainer or nominator cares about:
+
+1. **First contact** — welcoming a first-time contributor to lower
+   onboarding latency.
+2. **Activity tracking** — surfacing a contributor's sustained
+   work in a form useful to the nomination thread.
+3. **Nomination brief** — assembling the evidence prose a PMC uses
+   to open a committer or PMC vote thread.
+4. **Good first issue authoring** — keeping the on-ramp stocked with
+   newcomer-ready issues so contributors can find self-contained tasks.
+5. **Post-vote onboarding** — walking the nominator through the
+   ICLA check, account provisioning, permissions, and welcome
+   announcement once a vote passes.
+
+Each skill is read-only on governance artefacts (GitHub collaborator
+list, `author_association` field, ICLA records) and proposes every
+state change for human sign-off.
+
+## Where it lives
+
+- Skill: `mentoring-welcome` — drafts a first-contact orientation
+  comment for a first-time contributor on a newly opened issue or PR.
+  Detects first-time authorship via the GitHub `author_association`
+  field; skips repeat contributors; proposes the comment and does not
+  post without maintainer confirmation. Ships `mode: Mentoring`
+  + `experimental`, eval suite under
+  `tools/skill-evals/evals/mentoring-welcome/`.
+- Skill: `contributor-activity-sweep` — read-only GitHub activity
+  card for a named contributor: PR authorship, code-review
+  participation, issues, and comments over a configurable window.
+  Ships `mode: Triage` + `experimental`, eval suite under
+  `tools/skill-evals/evals/contributor-activity-sweep/`.
+- Skill: `contributor-nomination` — nomination-readiness brief for a
+  named contributor: activity breadth, consistency, vendor-neutrality
+  context, and evidence prose for a committer or PMC thread.
+  Read-only; never posts to any list. Ships `mode: Triage`
+  + `experimental`, eval suite under
+  `tools/skill-evals/evals/contributor-nomination/`.
+- Skill: `good-first-issue-author` — drafts one net-new good first
+  issue from a supplied gap or small task; suitability gate plus
+  R1–R9 readiness checklist; waits for maintainer confirmation
+  before filing via `gh`. Ships `mode: Mentoring` + `experimental`,
+  eval suite under `tools/skill-evals/evals/good-first-issue-author/`.
+- Skill: `committer-onboarding` — post-vote ICLA check, account
+  provisioning, permissions, and welcome-announcement checklist for
+  committer and PMC promotions at ASF TLPs and podlings.
+  Propose-before-post at every state-changing step. Ships
+  `mode: Triage` + `experimental`, eval suite under
+  `tools/skill-evals/evals/committer-onboarding/`.
+
+## Behaviour & contract
+
+- **Read-only or propose-then-confirm.** Skills read GitHub
+  collaborator lists, `author_association` fields, and public
+  activity histories; they never write a comment, post an
+  announcement, or modify a roster without explicit maintainer
+  confirmation.
+- **Governance steps are paste-ready recipes, not autopilot.**
+  `committer-onboarding` emits commands and draft announcements the
+  nominator executes as themselves; the skill never submits an ICLA
+  request, invites an account, or modifies repository permissions
+  directly.
+- **Evidence is curated, not fabricated.** `contributor-nomination`
+  and `contributor-activity-sweep` read public GitHub activity only;
+  they do not invent contributions or inflate counts. The brief and
+  activity card are inputs for a PMC vote, not a pre-decided
+  recommendation.
+- **Teaching register for first-contact.** `mentoring-welcome` and
+  `good-first-issue-author` follow the Mentoring mode's tone
+  contract (polite, never gatekeeping) and hand off to a human
+  reviewer on anything that exceeds the agent's scope.
+
+## Out of scope
+
+- **PMC-member nomination** (distinct from committer-to-PMC path):
+  not yet specced; the vote mechanics, quorum rules, and post-vote
+  steps differ enough to warrant a separate spec-RFC pass that
+  enumerates the option set and per-project policy knobs.
+- **Emeritus / inactive-committer handling and contributor
+  offboarding**: intentionally deferred pending scope agreement —
+  these involve project-level governance decisions (roster policy,
+  communication norms) that no skill can safely generalise without
+  per-project configuration.
+- Auto-promoting a contributor: all promotion decisions stay with the
+  PMC; the skills prepare evidence and checklists, never act on the
+  vote outcome without the nominator's explicit direction.
+- Backlog curation (relabeling the existing issue backlog as good
+  first issue candidates): `good-first-issue-author` drafts net-new
+  issues only; backlog curation is a separate capability not yet
+  specced.
+
+## Acceptance criteria
+
+1. `mentoring-welcome` does not draft or post for repeat contributors
+   (the `author_association` gate fires before any draft is produced).
+2. `contributor-nomination` and `contributor-activity-sweep` are
+   read-only — neither posts, labels, nor modifies any issue or PR.
+3. `committer-onboarding` emits paste-ready command recipes; no step
+   submits ICLA forms or changes repository permissions without the
+   nominator's direct action.
+4. All family skills pass `skill-and-tool-validate` with no errors.
+
+## Validation
+
+```bash
+uv run --project tools/skill-and-tool-validator --group dev 
skill-and-tool-validate
+```
+
+## Known gaps
+
+- **PMC-member nomination is not yet specced.** The committer-to-PMC
+  promotion has different vote mechanics (full-PMC vote, different
+  quorum) and post-vote steps from committer promotion. Defining it as
+  a capability-flag variant of `committer-onboarding` or as a
+  standalone skill requires a spec-RFC pass that enumerates the option
+  set and documents defaults. Candidate work item for a future plan
+  pass.
+- **Emeritus / inactive-committer handling and contributor offboarding
+  are intentionally deferred.** Both involve project-level policy
+  (when to move to emeritus, how to handle access removal, whether to
+  send a farewell announcement) that needs per-project configuration
+  before a skill can safely propose anything. These are candidate work
+  items once the active-path skills stabilise and an adopter pilot
+  surfaces the concrete policy knobs needed.
+- **Mode boundary with Mentoring is intentionally fuzzy.** Two family
+  skills (`mentoring-welcome`, `good-first-issue-author`) carry
+  `mode: Mentoring` and are documented in 
[mentoring-mode.md](mentoring-mode.md);
+  three carry `mode: Triage`. A later family-maturity review may
+  formalise the boundary or merge the families; for now, both specs
+  cross-reference each other.
+- **`experimental` — no adopter pilot has run.** All five skills exist
+  but no maintainer has run the full contributor-to-committer path
+  end-to-end through the family. Shape may change as adopter pilots
+  surface real-world usage patterns.

Reply via email to