Skip to content

Commit d14bc60

Browse files
committed
docs: view better structure
1 parent 5908474 commit d14bc60

1 file changed

Lines changed: 64 additions & 28 deletions

File tree

docs/CONTRIBUTING.md

Lines changed: 64 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,22 @@ approachable and respectful.
1010
> You can use [Wizard Browser Extension][1] to simplify some of the workflows
1111
> described in these Guidelines.
1212
13+
## Table of Contents
14+
15+
- [Getting started](#getting-started)
16+
- [Goal](#goal)
17+
- [Problem](#problem)
18+
- [Solution](#solution)
19+
- [Communication Guidelines](#communication-guidelines)
20+
- [PR Requirements](#pr-requirements)
21+
- [Commit Signature Verification](#commit-signature-verification)
22+
- [Scoping](#scoping)
23+
- [CI Checks](#ci-checks)
24+
- [Drafting](#drafting)
25+
- [Naming](#naming)
26+
- [Requesting Review](#requesting-review)
27+
- [Review Process](#review-process)
28+
1329
## Getting started
1430

1531
There are three core contribution pillars:
@@ -69,17 +85,27 @@ issue so the dependency is visible.
6985
### Problem
7086

7187
Once the Goal is clear, you must identify what stops you from achieving it.
72-
Anything that is stopping you - is a Problem. A typical question to ask is:
88+
Anything that is stopping you - is a "Problem". A typical question to ask is:
7389
"Why is this Goal not achieved and what is the Problem?".
7490

7591
Sometimes, a Goal already has a few identified problems, but not always.
7692

7793
> [!NOTE]
7894
> Once a Problem is identified, we report it as a
7995
> [GitHub Issue](https://docs.github.com/en/issues) with the following naming
80-
> pattern: `Problem: [statement]`. Were counting on our contributors to
96+
> pattern: `Problem: [statement]`. We're counting on our contributors to
8197
> identify problems. Keep a Problem name short (under 65 chars) and crystal
8298
> clear.
99+
>
100+
> The statement must read as a **job story**: describe what the specific user
101+
> **can't do** or what is broken for them. Ask: _"What can [user] not do
102+
> because of this problem?"_
103+
104+
| **Good**| **Bad**| **Why?** |
105+
| ------------------------------------------------ | ---------------------------------------------- | ------------------------------ |
106+
| `operators can't view their account balance` | `operators don't have their account balance` | Describes inability, not state |
107+
| `users can't submit a form without refreshing` | `form submission issue` | Vague, no actor or action |
108+
| `admins can't export reports as CSV` | `CSV export missing` | No subject, not a job story |
83109

84110
Make sure each Problem issue is interlinked with it's Goal issue:
85111

@@ -100,7 +126,7 @@ understand the context.
100126
The third pillar of successful contribution is the Solution.
101127

102128
Different problems may require different sets of skills.
103-
Whether its code, design, or marketing material, we expect a lean and clean
129+
Whether it's code, design, or marketing material, we expect a lean and clean
104130
solution from the contributor.
105131

106132
> [!NOTE]
@@ -113,14 +139,14 @@ solution from the contributor.
113139
> is linked to the Problem, which is linked to the Goal — that chain is
114140
> sufficient. Duplicate comments add noise.
115141
116-
### Referencing
142+
## Communication Guidelines
117143

118144
When referencing issues or pull requests in any GitHub discussion, use a list
119145
item format to enable automatic title rendering and improve readability. This
120146
ensures that GitHub automatically expands the reference to show the issue/PR
121147
title.
122148

123-
#### Correct Format
149+
### Correct Format
124150

125151
Use a list item to reference issues or PRs:
126152

@@ -133,7 +159,7 @@ See these related items:
133159
- #12
134160
```
135161

136-
#### Incorrect Formats
162+
### Incorrect Formats
137163

138164
Avoid simply pasting the URL inline.
139165

@@ -148,13 +174,23 @@ Check this out: <issue_or_pr_url> Related: <issue_or_pr_url> See
148174
149175
## PR Requirements
150176

151-
All PRs, whether for source code, design, or copy changes, must comply with our
152-
PR Requirements.
177+
All PRs, whether for source code, design, or copy changes, must comply with the
178+
following requirements.
153179

154180
> [!WARNING]
155181
> PRs that do not correspond to the following criteria are usually rejected.
156182
157-
## Commit Signature Verification
183+
Before marking your PR as ready for review, confirm:
184+
185+
- [ ] Commits are signed
186+
- [ ] PR scope fits within 3–4 hours of work
187+
- [ ] All CI checks pass
188+
- [ ] PR is linked to a Problem issue
189+
- [ ] At least one reviewer is assigned
190+
- [ ] Time is reported
191+
- [ ] PR title follows `type(scope): action` naming convention
192+
193+
### Commit Signature Verification
158194

159195
For the security and integrity of our project, we require all contributors to
160196
sign their commits.
@@ -166,7 +202,7 @@ For detailed instructions on why and how to sign your commits refer to
166202
> Ensure your Git version supports SSH signature verification (Git 2.34 or
167203
> later).
168204
169-
## Scoping
205+
### Scoping
170206

171207
> [!NOTE]
172208
> Here's a [good resource](https://youtu.be/bmSAYlu0NcY?si=2lLQeY1PGCY9tcvX) on software design philosophy.
@@ -181,7 +217,7 @@ We usually reject and close PRs which do not have activity for the last 24
181217
hours, unless there is a clear comment explaining the reason why that PR is
182218
stalled.
183219

184-
## CI Checks
220+
### CI Checks
185221

186222
To maintain the quality and integrity of our project, all PRs must successfully
187223
pass the required Continuous Integration (CI) checks before being marked as
@@ -200,7 +236,7 @@ The required checks are as follows:
200236
> requesting a review. Any PR with unresolved CI checks should remain in "draft"
201237
> status until all issues are fixed.
202238
203-
## Drafting
239+
### Drafting
204240

205241
When starting to work on a Problem, you must:
206242

@@ -214,7 +250,7 @@ When starting to work on a Problem, you must:
214250
1. Before marking your PR as ready for review, assign **at least one reviewer**
215251
(team or individual). Do not merge without approved review.
216252

217-
### Design PRs
253+
#### Design PRs
218254

219255
Initiate a PR with a note in the DESIGN.md file detailing the addressed design
220256
aspects. Design PRs use `docs(ui)` as the "type" and "scope" of its name. i.e.:
@@ -230,7 +266,7 @@ Structure the design file with the following markup:
230266
- [[state]](https://figma.com/your-design-file-url)
231267
```
232268

233-
#### Key
269+
##### Key
234270

235271
- **`/...`** - Represents a page.
236272
- **`{...}`** - Represents a dynamic parameter within a URL.
@@ -256,7 +292,7 @@ If there isn't an existing DESIGN.md file:
256292
1. Create a new file named DESIGN.md.
257293
1. Link it from README.md.
258294

259-
## Naming
295+
### Naming
260296

261297
> [!NOTE]
262298
> We use PR titles to communicate changes to all stakeholders, including
@@ -268,48 +304,46 @@ PR names must be:
268304
1. **Follow [Conventional Commits](https://www.conventionalcommits.org)**
269305
1. **Clear & simple** (present tense, action-oriented)
270306

271-
### Example Comparison
307+
#### Example Comparison
272308

273309
| **Good Examples**| **Bad Examples**| **Why?** |
274310
| ---------------------- | ------------------------------ | ------------------ |
275311
| `feat(ui): play music` | `Create player` | Missing scope/type |
276312
| `fix(sdk): mute sound` | `Fix: add file to mute sound` | Technical details |
277313
| `test(api): open door` | `Feat: modified door function` | Vague, past tense |
278314

279-
---
280-
281-
### Key Principles
315+
#### Key Principles
282316

283-
#### What to Focus On
317+
##### What to Focus On
284318

285-
A feature isnt a button, toggle, or handler—its
319+
A feature isn't a button, toggle, or handler—it's
286320
**what the user gains from it**. Ask:
287321

288322
-_"What am I building?"_ → Leads to technical labels.
289323
-_"What will users be able to do?"_ → Leads to clear value.
290324

291-
#### Why It Matters
325+
##### Why It Matters
292326

293327
- **Clarity**: Engineers, PMs, and stakeholders instantly understand the impact.
294328
- **Consistency**: Aligns with product-facing language (release notes, docs).
295329
- **User-Centricity**: Work is driven by user needs, not just code changes.
296330

297-
#### How to Apply It
331+
##### How to Apply It
298332

299333
1. **Replace UI labels with actions**: Wrong: "Add dropdown for filters" →
300334
Correct:"Filter search results by category"
301335
1. **Describe outcomes, not components**: Wrong: "Fix API error handling" →
302336
Correct:"Gracefully recover from connection errors"
303337
1. **Use user action verbs**: _View, Play, Customize, Save_, etc.
304338

305-
### Before Submitting, Ask
339+
#### Before Submitting, Ask
306340

307341
1. Does it use `type(scope [Optional]): action` format?
308342
1. Could a non-technical user understand the benefit?
309343
1. Is it in the present tense?
310344
1. Does it focus on user capability (not code)?
311345

312-
## Requesting Review
346+
### Requesting Review
313347

314348
Once your PR is ready, assign reviewers and mark it as "ready to review." But
315349
before that, report the time you have spent on it.
@@ -321,7 +355,9 @@ before that, report the time you have spent on it.
321355
> Programming and designing isn't just about writing code or creating designs;
322356
> it also involves planning (40%) and QA (20-30%).
323357
324-
### Reviewing PRs
358+
### Review Process
359+
360+
#### Giving a Review
325361

326362
Use **Request Changes** (reject) only for objective problems:
327363

@@ -332,13 +368,13 @@ Use **Request Changes** (reject) only for objective problems:
332368

333369
Use **Comment** for optional improvements or suggestions.
334370

335-
### Scout approach
371+
#### Scout Approach
336372

337373
If you ever have free time, be proactive and apply the scout approach: own the
338374
job, look for PRs that still need reviewers, and offer timely feedback so work
339375
keeps moving.
340376

341-
### Code Quality and Reviews
377+
#### Code Quality
342378

343379
Aim for solutions that work correctly 99.9% of the time. Be independent and
344380
thorough in your QA - reviewers are not QA team members but are there for a

0 commit comments

Comments
 (0)