···4455We follow a commit style similar to the Go project. Please keep commits:6677-* **atomic**: each commit should represent one logical change 77+* **atomic**: each commit should represent one logical change88* **descriptive**: the commit message should clearly describe what the99change does and why it's needed10101111### message format12121313-``` 1313+```1414<service/top-level directory>: <affected package/directory>: <short summary of change>15151616···2626appview: state: fix token expiry check in middleware27272828The previous check did not account for clock drift, leading to premature2929-token invalidation. 2929+token invalidation.3030```31313232```3333knotserver: git/service: improve error checking in upload-pack3434```3535+3636+The affected package/directory can be truncated down to just the relevant dir3737+should it be far too long. For example `pages/templates/repo/fragments` can3838+simply be `repo/fragments`.35393640### general notes3741···5652Small fixes like typos, minor bugs, or trivial refactors can be5753submitted directly as PRs.58545959-For larger changes—especially those introducing new features,6060-significant refactoring, or altering system behavior—please open a6161-proposal first. This helps us evaluate the scope, design, and potential6262-impact before implementation.5555+For larger changes—especially those introducing new features, significant5656+refactoring, or altering system behavior—please open a proposal first. This5757+helps us evaluate the scope, design, and potential impact before implementation.63586459### proposal format65606661Create a new issue titled:67626868-``` 6969-proposal: <affected scope>: <summary of change> 6363+```6464+proposal: <affected scope>: <summary of change>7065```71667267In the description, explain:
+6-5
readme.md
···44[Tangled](https://tangled.sh)—a code collaboration platform built55on the [AT Protocol](https://atproto.com).6677-Read the introduction to Tangled [here](https://blog.tangled.sh/intro).77+Read the introduction to Tangled [here](https://blog.tangled.sh/intro). Join the88+[Discord](https://chat.tangled.sh) or IRC at [#tangled on99+libera.chat](https://web.libera.chat/#tangled).810911## docs10121111-* [knot hosting1212-guide](https://tangled.sh/@tangled.sh/core/blob/master/docs/knot-hosting.md)1313-* [contributing1414-guide](https://tangled.sh/@tangled.sh/core/blob/master/docs/contributing.md)—**read this before opening a PR!**1313+* [knot hosting guide](/docs/knot-hosting.md)1414+* [contributing guide](/docs/contributing.md) **please read before opening a PR!**1515+* [hacking on tangled](/docs/hacking.md)15161617## security1718