diff --git a/75_MSG.pm b/75_MSG.pm
index 0953828..0142d84 100755
--- a/75_MSG.pm
+++ b/75_MSG.pm
@@ -1244,7 +1244,7 @@ m/^@?([A-Za-z0-9._]+):([A-Za-z0-9._\-\/@+]*):?([A-Za-z0-9._\-\/@+]*)$/
                         foreach my $gatewayDev ( split /,/, $gatewayDevOr ) {
 
                             if ( $gatewayDev =~
-m/^@?([A-Za-z0-9._]+):([A-Za-z0-9._\-\/@+]*):?([A-Za-z0-9._\-\/@+]*)$/
+m/^@?([A-Za-z0-9._]+):([A-Za-z0-9._\-\/@+\#]*):?([A-Za-z0-9._\-\/@+]*)$/
                               )
                             {
                                 $gatewayDev    = $1;
diff --git a/hooks/commit-msg b/hooks/commit-msg
new file mode 100755
index 0000000..ae9eb2c
--- /dev/null
+++ b/hooks/commit-msg
@@ -0,0 +1,36 @@
+#!/bin/sh
+#
+# An example hook script to check the commit log message.
+# Called by "git commit" with one argument, the name of the file
+# that has the commit message.  The hook should exit with non-zero
+# status after issuing an appropriate message if it wants to stop the
+# commit.  The hook is allowed to edit the commit message file.
+#
+# To enable this hook, rename this file to "commit-msg".
+
+# Uncomment the below to add a Signed-off-by line to the message.
+# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
+# hook is more suited to it.
+#
+# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
+# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
+
+# This example catches duplicate Signed-off-by lines.
+
+commit_msg=$(cat "${1:?Missing commit message file}")
+
+test "" = "$(grep '^Signed-off-by: ' "$1" |
+	 sort | uniq -c | sed -e '/^[ 	]*1[ 	]/d')" || {
+	echo >&2 Duplicate Signed-off-by lines.
+	exit 1
+}
+
+if ! echo "$commit_msg" | grep -Eq "^(build|chore|ci|docs|feat|feat!|fix|perf|refactor|revert|style|test)(\(.+\))?: .*$" ; then 
+
+  echo "Invalid commit message" 
+
+    exit 1 
+
+fi 
+
+echo "Commit message is valid!"
diff --git a/hooks/post-commit b/hooks/post-commit
new file mode 100755
index 0000000..bf571f5
--- /dev/null
+++ b/hooks/post-commit
@@ -0,0 +1,18 @@
+#!/bin/bash
+set -eu
+
+# destination of the final changelog file
+OUTPUT_FILE=CHANGELOG.md
+
+# generate the changelog
+git --no-pager log --no-merges --format="### %s%d%n>%aD%n%n>Author: %aN (%aE)%n%n>Commiter: %cN (%cE)%n%n%b%n%N%n" > $OUTPUT_FILE
+
+# prevent recursion!
+# since a 'commit --amend' will trigger the post-commit script again
+# we have to check if the changelog file has changed or not
+res=$(git status --porcelain | grep -c ".\$OUTPUT_FILE$")
+if [ "$res" -gt 0 ]; then
+  git add $OUTPUT_FILE
+  git commit --amend
+  echo "Populated Changelog in $OUTPUT_FILE"
+fi