diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index c6d87d094..7c8a5bd22 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -7,6 +7,9 @@ Fixes #
 
 ### Progress
 
+<!-- Please ensure you actioned and ticked each box below before requesting a review -->
+
 - [ ] Change must not contain extraneous whitespace
 - [ ] License header year is updated, if required
+- [ ] The PR name must follow the [pre-defined format](https://github.com/gluonhq/scenebuilder/blob/master/CONTRIBUTING.md)
 - [ ] Verify the contributor has signed [Gluon Individual Contributor License Agreement (CLA)](https://docs.google.com/forms/d/16aoFTmzs8lZTfiyrEm8YgMqMYaGQl0J8wA0VJE2LCCY)
\ No newline at end of file
diff --git a/.github/semantic.yml b/.github/semantic.yml
new file mode 100644
index 000000000..6df3dc799
--- /dev/null
+++ b/.github/semantic.yml
@@ -0,0 +1,9 @@
+# Defines valid PR titles
+types:
+  - build
+  - docs
+  - feat
+  - fix
+  - perf
+  - refactor
+  - test
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 109cd01a1..4e40cf5f0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,13 +1,42 @@
 ## How to Contribute to Scene Builder
 
-Contribution of any form is welcome! Please see the list below on how you can contribute to the project. Once you've decided what you would like to do, let us know about it first in the [Discussions section](https://github.com/gluonhq/scenebuilder/discussions). This is to make sure that the issue you want hasn't already been implemented or being worked on in newer versions. Any new API or changes to existing API should be discussed to avoid inconsistencies.
+Contribution of any form is welcome! Please see workflows below on how you can contribute to the project.
 
-* Provide or suggest an implementation of an issue from [GitHub Issues](https://github.com/gluonhq/scenebuilder/issues).
-* Proof read the [public documentation](https://github.com/gluonhq/scenebuilder/wiki) for errors, ambiguities and typos.
-* Create an issue or suggest a feature backed up by a use case.
-* Add missing tests.
+## Feature Request Workflow
+
+1. Open a [discussion](https://github.com/gluonhq/scenebuilder/discussions) to suggest a feature backed up by a use case.
+2. A maintainer will confirm the feature is beneficial for Scene Builder and will convert the discussion into a feature-request issue.
+
+## Contribution Workflow
+
+1. Pick an unassigned [open issue](https://github.com/gluonhq/scenebuilder/issues).
+2. Comment on it to say you would like to contribute to fixing it and propose a plan (if appropriate).
+3. A maintainer will confirm the issue is valid and can be assigned to you for a fix.
+4. You produce a Pull Request following the Standards below. It is expected that you will also provide accompanying tests.
+5. Once you tick all check boxes on the Pull Request template, it will be reviewed by a maintainer or a community member.
+6. Once the Pull Request is approved (`minor` requires at least 1, `major` requires at least 2), it will be ready for a squashed merge.
+
+## QA Test Workflow
+
+1. Grab an [early release package](https://github.com/gluonhq/scenebuilder/releases/tag/early-access).
+2. Test newly merged features since the latest stable version, paying attention to the functionality of existing features, OR proof read the [public documentation](https://github.com/gluonhq/scenebuilder/wiki) for errors, ambiguities and typos.
+3. Report any bugs, odd behavior, or inconsistencies to the maintainers as appropriate.
 
 ## Coding Standards
 
 * Any code contribution should follow [the OpenJFX guidelines](https://github.com/openjdk/jfx/blob/master/CONTRIBUTING.md#coding-style-and-testing-guidelines).
-* Any Pull Request should follow the provided template.
\ No newline at end of file
+* Any Pull Request should follow the provided template.
+
+## Pull Request Standards
+
+The project uses the following Pull Request message guidelines, based on [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/):
+
+* **build: Message** -- change affects the build system, configuration files, scripts, or external dependencies
+* **docs: Message** -- change affects documentation **only**, including LICENSE, CONTRIBUTING, README
+* **feat: Message** -- change adds a new or modifies an existing feature
+* **fix: Message** -- change fixes a bug
+* **perf: Message** -- change is related to performance
+* **refactor: Message** -- change cleans up or restructures code, including formatting only changes
+* **test: Message** -- change that adds new or updates existing tests and mostly affects the `test` package
+
+For concrete examples, see [latest merged requests](https://github.com/gluonhq/scenebuilder/commits/master).
\ No newline at end of file