@@ -177,7 +177,29 @@ Pick the number for the fragment filename as follows:
177177 ln -s 1284.bugfix.rst CHANGES/1340.bugfix.rst
178178 ```
179179
180- ### 3. Open the PR as a draft, and leave it that way
180+ ### 3. Push from a fork, not to upstream
181+
182+ Branch creation on ` aio-libs/multidict ` is restricted; you
183+ ** cannot** push a feature branch directly to upstream, and
184+ trying gets you a `GH013: Cannot create ref due to creations
185+ being restricted` error from the remote. All PRs must come
186+ from a fork. The standard setup is:
187+
188+ ``` bash
189+ # one-time: add your fork as a remote alongside `origin`
190+ git remote add < your-handle> https://github.com/< your-handle> /multidict
191+
192+ # per-PR: push the branch to your fork, then open the PR
193+ git push -u < your-handle> < branch-name>
194+ gh pr create --draft --repo aio-libs/multidict
195+ ```
196+
197+ ` gh pr create ` against ` aio-libs/multidict ` from a fork branch
198+ will pick up the right base and head automatically. Do not try
199+ to work around the restriction with ` --force ` or by retargeting
200+ ` origin ` ; the rule is intentional.
201+
202+ ### 4. Open the PR as a draft, and leave it that way
181203
182204Use ` gh pr create --draft ` . ** Every LLM-authored submission
183205must be fully reviewed by a human before it is marked ready
@@ -192,7 +214,7 @@ not request reviewers from the agent session; the human who
192214reviewed the change and flipped it out of draft is the one who
193215routes it.
194216
195- ### 4 . Disclose the agent, do not advertise it
217+ ### 5 . Disclose the agent, do not advertise it
196218
197219Disclosure is required, advertising is not welcome. Put one
198220plain line at the bottom of the PR body naming the agent that
@@ -244,14 +266,37 @@ That single line is enough. Beyond that:
244266 takeaways") on top of the template. The template already has
245267 the right sections.
246268
247- ### 5 . Keep the PR body short
269+ ### 6 . Keep the PR body short
248270
249271A couple of sentences per template section is plenty. If the change
250272is non-obvious, a short reproducer or a paragraph on root cause is
251273welcome. Long, multi-section essays with bolded sub-headings are not
252274the style here.
253275
254- ### 6. Commit hygiene
276+ ### 7. Run the docs spell check before pushing
277+
278+ CI builds the docs with ` sphinxcontrib.spelling ` and treats any
279+ unknown word as a hard failure. The spell checker reads every
280+ ` CHANGES/*.rst ` fragment as part of the build, so a technical word
281+ in your news fragment (` unparseable ` , ` parametrization ` , ` repr ` ,
282+ and so on) that is not in
283+ [ ` docs/spelling_wordlist.txt ` ] ( docs/spelling_wordlist.txt )
284+ will fail ` make doc-spelling ` and burn a CI run before a human
285+ even sees the PR.
286+
287+ Before pushing:
288+
289+ ``` bash
290+ make doc-spelling
291+ ```
292+
293+ If it flags a word you actually meant to use, add it to
294+ ` docs/spelling_wordlist.txt ` (one word per line, roughly
295+ alphabetical) in the same commit as the fragment. If it flags
296+ a typo, fix the typo. Do not paper over real misspellings by
297+ adding them to the wordlist.
298+
299+ ### 8. Commit hygiene
255300
256301- One logical change per PR. If a refactor and a bugfix are bundled
257302 together, split them.
@@ -383,6 +428,14 @@ Design tests so every line runs:
383428 environment.
384429- Do not invent a ` ## What / ## Why / ## How / ## Testing ` PR
385430 body; use the aio-libs template above.
431+ - Do not try to push a feature branch to ` aio-libs/multidict ` ;
432+ upstream rejects branch creation. Push to your fork and open
433+ the PR cross-repo. See _ Push from a fork, not to upstream_
434+ above.
435+ - Do not push without running ` make doc-spelling ` first if you
436+ edited any ` .rst ` file (including ` CHANGES/ ` ). The docs build
437+ fails on unknown words and burns a CI run; see _ Run the docs
438+ spell check before pushing_ above.
386439- Do not skip the ` CHANGES/ ` fragment "because the change is
387440 small". Even a one-line bugfix needs one.
388441- Do not add ` Co-Authored-By ` trailers for LLM tools, in either
0 commit comments