diff --git a/tools/lint/lib/checks/esid.py b/tools/lint/lib/checks/esid.py
new file mode 100644
index 0000000000000000000000000000000000000000..e2c85af3de5dd466014f1fbd386af6a67924c69c
--- /dev/null
+++ b/tools/lint/lib/checks/esid.py
@@ -0,0 +1,31 @@
+from ..check import Check
+import re
+
+class CheckEsid(Check):
+    '''Ensure tests specify only valid `es6id's'''
+    ID = 'ESID'
+
+    def __init__(self):
+        #self.es5idRegex = re.compile(r"^S?(B|\d+)(\.\d+)+(-(\d+|[a-z]|i+))*(_A\d(\.\d+)?(_T\d(\.\d+)?)?)?$")
+        self.es6idRegex = re.compile(r"^(S?(B|\d+)(\.\d+)+(((_A\d\.\d)?_T?\d)|[ _]S\d+(\.[a-z])*)?(, |$))+")
+        self.esidRegex = re.compile(r"^(pending|(prod|sec)-[-_A-Za-z0-9.%@]+)$")
+
+    def run(self, name, meta, source):
+        if not meta:
+            return
+
+        # es5ids are a mess
+        #if 'es5id' in meta:
+        #  es5id = str(meta['es5id'])
+        #  if self.es5idRegex.match(es5id) == None:
+        #      return 'The `es5id` tag has the wrong format: %s' % es5id
+
+        if 'es6id' in meta:
+          es6id = str(meta['es6id'])
+          if self.es6idRegex.match(es6id) == None:
+              return 'The `es6id` tag has the wrong format: %s' % es6id
+
+        if 'esid' in meta:
+          esid = str(meta['esid'])
+          if self.esidRegex.match(esid) == None:
+              return 'The `esid` tag has the wrong format: %s' % esid
diff --git a/tools/lint/lint.py b/tools/lint/lint.py
index 20f2152daf302de4833f9fca1991c7ea00ebef45..92ccec5abd8e72f5540ac28911e163d0f6b58c05 100755
--- a/tools/lint/lint.py
+++ b/tools/lint/lint.py
@@ -23,6 +23,7 @@ except ImportError:
 
 
 from lib.collect_files import collect_files
+from lib.checks.esid import CheckEsid
 from lib.checks.features import CheckFeatures
 from lib.checks.frontmatter import CheckFrontmatter
 from lib.checks.harnessfeatures import CheckHarnessFeatures
@@ -41,6 +42,7 @@ parser.add_argument('path',
         help='file name or directory of files to lint')
 
 checks = [
+        CheckEsid(),
         CheckFrontmatter(),
         CheckFeatures('features.txt'),
         CheckHarnessFeatures(),