Skip to content

Latest commit

 

History

History
125 lines (83 loc) · 4.69 KB

File metadata and controls

125 lines (83 loc) · 4.69 KB

Stack-and-Flow Design System Governance

This document describes how the project is organized, who can do what, and how decisions are made.


Roles

Project Lead

The Project Lead is the final owner of the design system. Currently: @egdev6.

Responsibilities:

  • Define the vision and roadmap of the project
  • Approve and merge all Pull Requests
  • Make architecture and design decisions
  • Manage the project board and issue stages
  • Resolve technical conflicts or disagreements

Maintainer

Maintainers are contributors with a proven track record in the project who receive additional permissions.

Responsibilities:

  • Review Pull Requests and leave detailed technical feedback
  • Label and prioritize issues
  • Help new contributors with questions and onboarding
  • Participate in design decisions when the Project Lead requests it

To become a Maintainer: have contributed at least 3 merged PRs of quality, and be proposed or accept the invitation from the Project Lead.

Contributor

Anyone who opens an issue, reports a bug, proposes a feature, or submits a Pull Request.

Responsibilities:


Pull Request Approval Process

Standard flow

1. Contributor opens PR → links the issue with "Closes #NNN"
2. CI automatically runs: tests, Storybook build, a11y
3. Project Lead or Maintainer reviews the code
4. If there is feedback → Contributor applies changes
5. Project Lead approves and merges
6. The task moves to `Done` only after the PR is merged or the Project Lead/maintainer explicitly approves closure, with validation evidence

Approval criteria

A PR is ready to merge when:

  • ✅ All CI checks pass (tests, build, a11y)
  • ✅ Code follows the 6-file structure and Container/Presentational pattern
  • ✅ Types are explicit — no any, no interface
  • ✅ Component has tests with minimum required coverage
  • ✅ Storybook story is complete with args, JSDoc-driven controls, and component docs in the JSDoc block above const meta
  • ✅ No hardcoded colors — system tokens by default; approved compact/dense CVA size variants may use calibrated arbitrary sizing/typography
  • ✅ ARIA attributes are present and correct
  • ✅ PR template is fully filled in
  • ✅ Commit follows Conventional Commits format

Automatic rejection criteria

A PR will be rejected without detailed review if:

  • ❌ Any CI check fails
  • ❌ Not linked to an existing issue
  • ❌ Mixes Container and Presentational logic in the same file
  • ❌ Uses any or interface in TypeScript
  • ❌ Uses arbitrary Tailwind colors (text-[#000]); arbitrary sizing/typography is allowed only in CVA (types.ts) for approved compact/dense variants
  • ❌ Missing tests or Storybook story

Decision Making

Minor decisions

Changes to existing components, bug fixes, documentation improvements, and token adjustments: the Project Lead decides unilaterally after review.

Architecture decisions

Changes affecting global patterns (new atomic layer, tooling changes, new naming conventions): discussed in an issue labeled discussion before implementing. The Project Lead has the final say.

Roadmap changes

Adding or removing project phases, significant scope changes: the Project Lead announces them in GitHub Discussions before implementing them.


Communication

Channel Purpose
GitHub Issues Bugs, component proposals, concrete improvements
GitHub Discussions Questions, open ideas, general feedback
Pull Requests Code review and technical feedback
Project Board Task status tracking

Code of Conduct

This project follows a professional and respectful collaboration environment. All participants are expected to:

  • Communicate respectfully and without offensive language
  • Accept technical feedback constructively
  • Give credit to others' contributions
  • Prioritize code quality over speed

Behaviors that are not tolerated: personal attacks, discriminatory language, spam, or any form of harassment. The Project Lead may revoke access to any participant who does not comply with these norms.


Changes to This Document

This document may be updated by the Project Lead at any time. Significant changes will be announced in GitHub Discussions with at least 7 days notice.