diff --git a/.github/scripts/kernel_checker.py b/.github/scripts/kernel_checker.py
new file mode 100755
index 0000000..3d96d05
--- /dev/null
+++ b/.github/scripts/kernel_checker.py
@@ -0,0 +1,79 @@
+#!/usr/bin/env python3
+
+import os
+from common.header_checker import HeaderChecker
+
+#--------------------------------------------------------------------------------------------------
+#                                            CONFIG
+#--------------------------------------------------------------------------------------------------
+KERNEL_IGNORED_EXTENSIONS = [
+    '.yml',
+    '.css',
+    '.idx',
+    '.md',
+    '.url',
+    '.sty',
+    '.0-rc2',
+    '.s82',
+    '.js',
+    '.out',
+    '.pack',
+    '.2',
+    '.1-kernel-only',
+    '.0-kernel-only',
+    '.0-rc1',
+    '.readme',
+    '.tex',
+    '.png',
+    '.bat',
+    '.sh'
+]
+
+KERNEL_IGNORED_PATTERNS = [
+    r'.*\.git.*'
+]
+
+KERNEL_HEADER = [
+    '/*\n',
+    ' * FreeRTOS Kernel V10.4.2\n',
+    ' * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\n',
+    ' *\n',
+    ' * Permission is hereby granted, free of charge, to any person obtaining a copy of\n',
+    ' * this software and associated documentation files (the "Software"), to deal in\n',
+    ' * the Software without restriction, including without limitation the rights to\n',
+    ' * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n',
+    ' * the Software, and to permit persons to whom the Software is furnished to do so,\n',
+    ' * subject to the following conditions:\n',
+    ' *\n',
+    ' * The above copyright notice and this permission notice shall be included in all\n',
+    ' * copies or substantial portions of the Software.\n',
+    ' *\n',
+    ' * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n',
+    ' * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n',
+    ' * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n',
+    ' * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n',
+    ' * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n',
+    ' * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n',
+    ' *\n',
+    ' * https://www.FreeRTOS.org\n',
+    ' * https://github.com/FreeRTOS\n',
+    ' *\n',
+    ' */\n',
+]
+
+
+def main():
+    parser = HeaderChecker.configArgParser()
+    args   = parser.parse_args()
+
+    # Configure the checks then run
+    checker = HeaderChecker(KERNEL_HEADER)
+    checker.ignoreExtension(*KERNEL_IGNORED_EXTENSIONS)
+    checker.ignorePattern(*KERNEL_IGNORED_PATTERNS)
+    checker.ignoreFile(os.path.split(__file__)[-1])
+
+    return checker.processArgs(args)
+
+if __name__ == '__main__':
+    exit(main())
+
diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml
new file mode 100644
index 0000000..18712c4
--- /dev/null
+++ b/.github/workflows/auto-release.yml
@@ -0,0 +1,54 @@
+name: Kernel-Auto-Release
+
+on:
+  workflow_dispatch:
+    inputs:
+      commit_id:
+        description: 'Commit ID'
+        required: true
+        default: 'HEAD'
+      version_number:
+        description: 'Version Number (Ex. 10.4.0)'
+        required: true
+        default: '10.4.0'             
+
+jobs:
+  release-packager:
+    name: Release Packager
+    runs-on: ubuntu-latest
+    steps:
+      # Install python 3
+      - name: Tool Setup
+        uses: actions/setup-python@v2
+        with:
+          python-version: 3.8.5
+          architecture:   x64
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+      # Currently FreeRTOS/.github/scripts houses the release script. Download it for upcoming usage
+      - name: Checkout FreeRTOS Release Tools
+        uses: actions/checkout@v2
+        with:
+          repository: FreeRTOS/FreeRTOS
+          path: tools
+      
+      # Simpler git auth if we use checkout action and forward the repo to release script 
+      - name: Checkout FreeRTOS Kernel
+        uses: actions/checkout@v2
+        with: 
+          path: local_kernel
+          fetch-depth: 0
+
+      - name: Release
+        run: |
+          # Configure repo for push
+          git config --global user.name ${{ github.actor }}
+          git config --global user.email ${{ github.actor }}@users.noreply.github.com
+          
+          # Install deps and run
+          pip install -r ./tools/.github/scripts/release-requirements.txt
+          ./tools/.github/scripts/release.py FreeRTOS --kernel-repo-path=local_kernel --kernel-commit=${{ github.event.inputs.commit_id }} --new-kernel-version=${{ github.event.inputs.version_number }}
+          exit $?
+        env:
+            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/header-checks.yml b/.github/workflows/kernel-checks.yml
similarity index 72%
rename from .github/workflows/header-checks.yml
rename to .github/workflows/kernel-checks.yml
index 4d9546c..8c64487 100644
--- a/.github/workflows/header-checks.yml
+++ b/.github/workflows/kernel-checks.yml
@@ -1,10 +1,10 @@
-name: FreeRTOS-Header-Checker
+name: Kernel-Checker
 
 on: [pull_request]
 
 jobs:
-  header-checker:
-    name: File Header Checks
+  kernel-checker:
+    name: FreeRTOS Kernel Header Checks
     runs-on: ubuntu-latest
     steps:
       # Install python 3
@@ -16,7 +16,7 @@
         env:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
-      # Get latest checks from master
+      # There is shared code, hosted by FreeRTOS/FreeRTOS, with deps needed by header checker
       - name: Checkout FreeRTOS Tools
         uses: actions/checkout@v2
         with:
@@ -36,11 +36,12 @@
         uses: lots0logs/gh-action-get-changed-files@2.1.4
         with:
           token: ${{ secrets.GITHUB_TOKEN }}
-
+      
       # Run checks
       - name: Check File Headers
         run: |
+          mv tools/.github/scripts/common inspect/.github/scripts
           cd inspect
-          ../tools/.github/scripts/check-header.py --kernel --json ${HOME}/files.json
+          .github/scripts/kernel_checker.py --json ${HOME}/files_modified.json ${HOME}/files_added.json ${HOME}/files_renamed.json
           exit $?
 
