Skip to content

docs: propagate two-tier Org Admin / Steward governance model#9

Merged
psjamesp merged 13 commits intomainfrom
stack-root
Apr 22, 2026
Merged

docs: propagate two-tier Org Admin / Steward governance model#9
psjamesp merged 13 commits intomainfrom
stack-root

Conversation

@HeyItsGilbert
Copy link
Copy Markdown
Member

Summary

Propagates the updated two-tier governance model from the new GOVERNANCE.md across every community health file and doc in the repo. The original single-Steward role has been split into:

  • Org Admin — one person, org-wide authority, external face of PowerShellOrg
  • Steward (per project) — one per adopted project, drives revival through graduation

Key changes by area:

  • GOVERNANCE.md — new source document with Org Admin / Steward split, Council = all Stewards + invited members, Steward appointment/departure/vacancy rules, status-paused lifecycle state
  • Adoption (adoption-criteria.md, tool_adoption_request.yml) — new criterion 7 (no Steward, no adoption); submitter commitment split into Steward path (12-month, direction ownership) vs co-maintainer path (6-month); adoption workflow table uses Org Admin; new steward-commitment dropdown and steward-details textarea in the issue template
  • Onboarding (maintainer-onboarding.md) — PSGallery key issuance/rotation → Org Admin; escalation chain is now tiered (co-maintainer → project's Steward → Org Admin); new "If you are the Steward" section; CoC report email fixed (conduct@powershellorg.exampleprivacy@powershell.org)
  • Revival playbook (revival-playbook.md) — Phase 0 explicitly names the Steward as driver and tracking-issue owner; PSGallery actions → Org Admin; Phase 5 status-transition notification → Org Admin
  • Profile + root README — Steward column added to tools table (placeholders), status legend with status-paused badge, adoption CTA updated, governance blurb updated
  • Lifecycle state (CONTRIBUTING.md, maintainer-onboarding.md) — status-paused row added to both SLA tables
  • CoC + security (CODE_OF_CONDUCT.md, SECURITY.md, announcements.yml) — all enforcement, appeals, and reporting references → Org Admin; announcements template updated to name both Stewards and Org Admin

Placeholders requiring follow-up

File Placeholder
profile/README.md (×2) <Steward: FILL IN> for Plaster and PSDepend
.github/GOVERNANCE.md footer [DATE]
docs/maintainer-onboarding.md Council channel URL
.github/SECURITY.md Fallback security email and PGP key

Test plan

  • Read GOVERNANCE.md and verify it matches the intended two-tier model
  • Open the Tool Adoption Request issue form and confirm the new Steward dropdown and details textarea render correctly
  • Scan each modified file for any remaining stale "Steward" references that should read "Org Admin" (grep: the Steward excluding GOVERNANCE.md and intentional project-Steward uses)
  • Fill in <Steward: FILL IN> placeholders in profile/README.md before merging to main
  • Confirm [DATE] in GOVERNANCE.md footer is updated before merging

🤖 Generated with Claude Code

HeyItsGilbert and others added 12 commits April 21, 2026 16:30
Splits the original single Steward role into Org Admin (org-wide) and
Steward (per-project). Adds status-paused lifecycle state, Steward
appointment/departure/vacancy rules, and updated Council composition.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rement

- Add criterion 7: a committed Steward is required; no Steward, no adoption
- Split "what the submitter commits to" into Steward path (12-month,
  direction ownership) and co-maintainer path (6-month)
- Update "what PowerShellOrg commits to" point 2 to reflect
  status-paused intermediate state before archival
- Update adoption workflow table: Steward → Org Admin for
  acknowledgment, decision, and transfer; Steward drives revival
- Add steward-commitment dropdown and steward-details textarea to
  tool_adoption_request.yml; both new fields placed before
  additional-notes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Org invite, PSGallery username, key issuance, and key rotation are
  all Org Admin actions (previously "Steward")
- Branch protection notification goes to the project's Steward
- Escalation and step-down language now distinguishes co-maintainer
  (→ project's Steward) from Steward (→ Org Admin)
- CoC report alternate contact updated to Org Admin
- Add status-paused row to first-response SLA table
- Add "If you are the Steward" section covering the heavier
  responsibilities: revival ownership, project direction, graduation
  proposal, and early-notice obligation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Phase 0 intro now names the Steward as the owner of the phase:
  confirmed at adoption, opens the tracking issue on day one
- PSGallery key creation and rotation reminder are Org Admin actions
- Phase 5 status transition notification goes to the Org Admin
  (org-level tracking) rather than generic "Steward"
- PSGallery API key rotation cadence table updated to Org Admin-driven

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Steward column to the maintained tools table with FILL IN
  placeholders for each project
- Add status legend including status-paused badge
- Update adoption CTA to note that a committed Steward is required
- Update root README governance blurb: Org Admin holds org-wide
  authority; Council is all active Stewards plus invited members

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… email

- CONTRIBUTING.md: add status-paused row to maintainer SLA table;
  "Steward" → "project's Steward" in the understaffed-repo note
- maintainer-onboarding.md: add status-paused row to first-response
  SLA table; fix CoC report address from conduct@powershellorg.example
  to privacy@powershell.org

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ements

CODE_OF_CONDUCT.md:
- Alternate contact for reports → Org Admin
- Addressing and Repairing Harm section → Org Admin throughout
- Private Conversation response → Org Admin
- Restorative Paths discretion → Org Admin
- Appeals section: writing to / reviewed by / cannot review impartially
  / does not vote → Org Admin throughout

SECURITY.md:
- Draft security advisory visibility → Org Admin (not Steward)

announcements.yml:
- Posting permission now names both project Stewards and the Org Admin

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The key rotation note in the Maintainer steps block incorrectly said
"the Steward will initiate rotation" — key rotation is an Org Admin
action, consistent with the rest of the PSGallery key section.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- profile/README.md: Plaster Steward → James Petty; PSDepend Steward → Gilbert Sanchez
- SECURITY.md: replace placeholder security email with privacy@powershell.org; remove PGP placeholder line
- GOVERNANCE.md: set last-updated date to 2026/04/21

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Prose rewrapped to ~80 columns, inline links converted to reference-style,
table columns aligned. No content changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
"The Steward retains discretion" in the Addressing and Repairing Harm
section was missed in the original CoC update pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Keys are minted by the Org Admin or a Council member (not Org Admin
  exclusively); updated in maintainer-onboarding and revival-playbook
- Maintainers no longer share a PSGallery username for key issuance;
  replaced with a note that publishing is CI-only and they do not run
  Invoke-psake Publish locally
- Maintainer rotation responsibility changed from "you may be asked to
  trigger it" to "notify Org Admin or Council if the key appears expired"
- CONTRIBUTING.md: Publish task comment updated to CI-only warning

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment thread profile/README.md Outdated
Comment on lines +13 to +15
**Status legend:** ![Active][status-active] actively maintained ·
![Stable][status-stable] stable, reduced cadence · ![Paused][status-paused]
Steward vacancy in progress · ![Archived][status-archived] read-only
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line got mangled. Let's fix it.

- profile/README.md: put status legend on one line so badges don't
  split from their label text after formatting
- CONTRIBUTING.md: replace @PowerShellOrg/maintainers ping (requires
  a GitHub team that doesn't exist) with "open a discussion on the
  relevant repository"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@psjamesp psjamesp merged commit 944a0aa into main Apr 22, 2026
@psjamesp psjamesp deleted the stack-root branch April 22, 2026 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants